16x16 tough.txt
Order 4: digits 16; houses 48, cells 256.
Grid.grid1: initial copying
pending={a1, a2, a3, a6, a10, a12, a13, a16, b3, b4, b5, b6, b7, b8, b9, b10, b12, c2, c4, c7, c8, c11, c13, d6, d9, d10, d12, d16, e3, e4, e9, e13, e15, f6, f8, f13, f15, f16, g1, g5, g8, g9, g12, g14, h2, h4, h7, h8, h9, h10, h13, h14, i2, i3, i5, i8, i16, j2, j7, j9, j11, j12, k1, k4, k5, k7, k9, k10, k14, l1, l2, l3, l5, l14, l15, m4, m5, m6, m7, m11, m14, m15, n1, n3, n10, n14, o2, o3, o7, o10, o12, o14, p2, p5, p6, p16}
deduce.grid1: naked-singles
- a7 is 1 by naked-single.
pending={a7}
deduce.grid1: hidden-singles
deduce.grid1.rowb. b11 is 6 by hidden-single.
pending={b11}
deduce.grid1: naked-singles
deduce.grid1: hidden-singles
deduce.grid1.rowb. b2 is 12 by hidden-single.
pending={b2}
deduce.grid1: naked-singles
deduce.grid1: hidden-singles
deduce.grid1.rowc. c1 is 13 by hidden-single.
pending={c1}
deduce.grid1: naked-singles
deduce.grid1: hidden-singles
deduce.grid1.rowh. h1 is 10 by hidden-single.
pending={h1}
deduce.grid1: naked-singles
deduce.grid1: hidden-singles
deduce.grid1.rowj. j10 is 12 by hidden-single.
pending={j10}
deduce.grid1: naked-singles
- c10 is 14 by naked-single.
pending={c10}
deduce.grid1: hidden-singles
deduce.grid1.rowc. c9 is 12 by hidden-single.
pending={c9}
deduce.grid1: naked-singles
deduce.grid1: hidden-singles
deduce.grid1.rowe. e11 is 12 by hidden-single.
pending={e11}
deduce.grid1: naked-singles
deduce.grid1: hidden-singles
deduce.grid1.rowf. f3 is 12 by hidden-single.
pending={f3}
deduce.grid1: naked-singles
deduce.grid1: hidden-singles
deduce.grid1.rowi. i7 is 12 by hidden-single.
pending={i7}
deduce.grid1: naked-singles
deduce.grid1: hidden-singles
deduce.grid1.rowl. l16 is 11 by hidden-single.
pending={l16}
deduce.grid1: naked-singles
deduce.grid1: hidden-singles
deduce.grid1.rowm. m10 is 10 by hidden-single.
pending={m10}
deduce.grid1: naked-singles
deduce.grid1: hidden-singles
deduce.grid1.col2. d2 is 10 by hidden-single.
pending={d2}
deduce.grid1: naked-singles
deduce.grid1: hidden-singles
deduce.grid1.col3. h3 is 9 by hidden-single.
pending={h3}
deduce.grid1: naked-singles
deduce.grid1: hidden-singles
deduce.grid1.rowh. h12 is 15 by hidden-single.
deduce.grid1.rowh. h15 is 14 by hidden-single.
pending={h12, h15}
deduce.grid1: naked-singles
deduce.grid1: hidden-singles
deduce.grid1.rowe. e1 is 14 by hidden-single.
pending={e1}
deduce.grid1: naked-singles
deduce.grid1: hidden-singles
deduce.grid1.col3. j3 is 15 by hidden-single.
pending={j3}
deduce.grid1: naked-singles
deduce.grid1: hidden-singles
deduce.grid1.box6. g6 is 11 by hidden-single.
pending={g6}
deduce.grid1: naked-singles
- c6 is 4 by naked-single.
pending={c6}
deduce.grid1: hidden-singles
deduce.grid1.box9. i1 is 5 by hidden-single.
pending={i1}
deduce.grid1: naked-singles
deduce.grid1: hidden-singles
deduce.grid1: naked-pairs
two's heap=c12 {1|2}, d7 {3|6}, h6 {2|7}, a8 {5|11}, a9 {7|9}, h5 {5|7}, c5 {5|10}, b1 {1|15}, d5 {3|16}, b15 {15|16}, g2 {2|16}, c3 {1|11}, a5 {5|10}, h16 {5|13}.
Naked-pair {5|10} in cells {a5, c5} contained within {col5, box2}, updating cells {a8, d5, d7, d8, e5, f5, h5, j5, n5, o5}:
- a8: {5|11} → {11}. Solved.
- e5: {1|3|4|5|9} → {1|3|4|9}.
- f5: {1|3|4|5|7|9} → {1|3|4|7|9}.
- h5: {5|7} → {7}. Solved.
pending={a8, h5}
deduce.grid1: naked-singles
- h6 is 2 by naked-single.
pending={h6}
- h11 is 13 by naked-single.
pending={h11}
- h16 is 5 by naked-single.
pending={h16}
deduce.grid1: hidden-singles
deduce.grid1.rowf. f2 is 5 by hidden-single.
pending={f2}
deduce.grid1: naked-singles
deduce.grid1: hidden-singles
deduce.grid1.rowe. e8 is 5 by hidden-single.
pending={e8}
deduce.grid1: naked-singles
deduce.grid1: hidden-singles
deduce.grid1.col2. n2 is 15 by hidden-single.
pending={n2}
deduce.grid1: naked-singles
deduce.grid1: hidden-singles
deduce.grid1.rown. n12 is 11 by hidden-single.
pending={n12}
deduce.grid1: naked-singles
deduce.grid1: hidden-singles
deduce.grid1.rowf. f10 is 11 by hidden-single.
pending={f10}
deduce.grid1: naked-singles
deduce.grid1: hidden-singles
deduce.grid1.col2. k2 is 11 by hidden-single.
pending={k2}
deduce.grid1: naked-singles
deduce.grid1: hidden-singles
deduce.grid1.col2. m2 is 13 by hidden-single.
pending={m2}
deduce.grid1: naked-singles
deduce.grid1: hidden-singles
deduce.grid1.box10. k8 is 2 by hidden-single.
pending={k8}
deduce.grid1: naked-singles
deduce.grid1: hidden-singles
deduce.grid1.rowk. k6 is 9 by hidden-single.
pending={k6}
deduce.grid1: naked-singles
deduce.grid1: hidden-singles
deduce.grid1.rowe. e5 is 9 by hidden-single.
pending={e5}
deduce.grid1: naked-singles
deduce.grid1: hidden-singles
deduce.grid1: naked-pairs
two's heap=c12 {1|2}, d7 {3|6}, o1 {4|8}, a5 {5|10}, c3 {1|11}, a9 {7|9}, c5 {5|10}, b15 {15|16}, d5 {3|16}, e2 {2|16}, g2 {2|16}, b1 {1|15}, o6 {1|15}.
Naked-pair {5|10} in cells {a5, c5} contained within {col5, box2}, updating cells {d5, d7, d8, f5, j5, n5, o5}:
Naked-pair {2|16} in cells {e2, g2} contained within {col2, box5}, updating cells {f1, f4, g3, g4}:
- f1: {1|4|15|16} → {1|4|15}.
- g3: {1|4|16} → {1|4}.
- g4: {1|2|3|4} → {1|3|4}.
grid1
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
| 10
| 11
| 12
| 13
| 14
| 15
| 16
|
| a
| 3
| 4
| 6
|
|
| 12
| 1
| 11
|
| 8
|
| 16
| 13
|
|
| 14
|
| b
|
| 12
| 8
| 5
| 2
| 13
| 9
| 14
| 11
| 4
| 6
| 10
|
|
|
|
|
| c
| 13
| 9
|
| 16
|
| 4
| 15
| 7
| 12
| 14
| 3
|
| 6
|
|
|
|
| d
|
| 10
|
|
|
| 8
|
|
| 15
| 5
|
| 13
|
|
|
| 12
|
| e
| 14
|
| 13
| 11
| 9
|
|
| 5
| 10
|
| 12
|
| 15
|
| 7
|
|
| f
|
| 5
| 12
|
|
| 14
|
| 13
|
| 11
|
|
| 10
|
| 2
| 8
|
| g
| 7
|
|
|
| 15
| 11
|
| 10
| 5
|
|
| 14
|
| 9
|
|
|
| h
| 10
| 6
| 9
| 8
| 7
| 2
| 16
| 12
| 4
| 1
| 13
| 15
| 11
| 3
| 14
| 5
|
| i
| 5
| 8
| 3
|
| 11
|
| 12
| 4
|
|
|
|
|
|
|
| 9
|
| j
|
| 14
| 15
|
|
|
| 5
|
| 2
| 12
| 11
| 9
|
|
|
|
|
| k
| 6
| 11
|
| 12
| 14
| 9
| 10
| 2
| 3
| 15
|
|
|
| 5
|
|
|
| l
| 9
| 7
| 2
|
| 8
|
|
|
|
|
|
|
|
| 12
| 1
| 11
|
| m
|
| 13
|
| 9
| 12
| 5
| 7
|
|
| 10
| 15
|
|
| 11
| 3
|
|
| n
| 12
| 15
| 5
|
|
|
|
|
|
| 9
|
| 11
|
| 10
|
|
|
| o
|
| 3
| 10
|
|
|
| 11
|
|
| 2
|
| 12
|
| 16
|
|
|
| p
|
| 1
|
|
| 6
| 10
|
|
|
|
|
|
|
|
|
| 15
|
backtrack.grid1 → grid2: a5 guess 5 ∈ {5|10}
pending={a5}
deduce.grid2: naked-singles
- c5 is 10 by naked-single.
pending={c5}
deduce.grid2: hidden-singles
deduce.grid2.rowa. a15 is 10 by hidden-single.
pending={a15}
deduce.grid2: naked-singles
deduce.grid2: hidden-singles
deduce.grid2.rowc. c15 is 5 by hidden-single.
pending={c15}
deduce.grid2: naked-singles
deduce.grid2: hidden-singles
deduce.grid2.rowc. c3 is 11 by hidden-single.
deduce.grid2.rowc. c14 is 8 by hidden-single.
pending={c3, c14}
deduce.grid2: naked-singles
deduce.grid2: hidden-singles
deduce.grid2.rowd. d15 is 11 by hidden-single.
pending={d15}
deduce.grid2: naked-singles
deduce.grid2: hidden-singles
deduce.grid2.rowp. p1 is 11 by hidden-single.
pending={p1}
deduce.grid2: naked-singles
deduce.grid2: hidden-singles
deduce.grid2.col16. j16 is 10 by hidden-single.
pending={j16}
deduce.grid2: naked-singles
deduce.grid2: hidden-singles
deduce.grid2.col16. b16 is 3 by hidden-single.
pending={b16}
deduce.grid2: naked-singles
deduce.grid2: hidden-singles
deduce.grid2.box4. d13 is 9 by hidden-single.
pending={d13}
deduce.grid2: naked-singles
deduce.grid2: hidden-singles
deduce.grid2.rowd. d14 is 4 by hidden-single.
pending={d14}
deduce.grid2: naked-singles
deduce.grid2: hidden-singles
deduce.grid2: naked-pairs
two's heap=c12 {1|2}, c16 {1|2}, d1 {1|2}, d7 {3|6}, e14 {1|6}, g3 {1|4}, o1 {4|8}, b1 {1|15}, e2 {2|16}, a9 {7|9}, f14 {1|6}, b15 {15|16}, g2 {2|16}, d5 {3|16}, o6 {1|15}.
Naked-pair {1|6} in cells {e14, f14} contained within {col14, box8}, updating cells {a14, b14, e16, g13, g15, g16, i14, j14, p14}:
- b14: {1|7|15} → {7|15}.
- e16: {1|4|6|16} → {4|16}.
- g13: {1|4|12|16} → {4|12|16}.
- g15: {4|6|12|13|16} → {4|12|13|16}.
- g16: {1|4|6|13|16} → {4|13|16}.
- i14: {2|6|7|13|14|15} → {2|7|13|14|15}.
- j14: {6|7|13} → {7|13}.
Naked-pair {2|16} in cells {e2, g2} contained within {col2, box5}, updating cells {f1, f4, g3, g4}:
grid2
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
| 10
| 11
| 12
| 13
| 14
| 15
| 16
|
| a
| 3
| 4
| 6
|
| 5
| 12
| 1
| 11
|
| 8
|
| 16
| 13
|
| 10
| 14
|
| b
|
| 12
| 8
| 5
| 2
| 13
| 9
| 14
| 11
| 4
| 6
| 10
|
|
|
| 3
|
| c
| 13
| 9
| 11
| 16
| 10
| 4
| 15
| 7
| 12
| 14
| 3
|
| 6
| 8
| 5
|
|
| d
|
| 10
|
|
|
| 8
|
|
| 15
| 5
|
| 13
| 9
| 4
| 11
| 12
|
| e
| 14
|
| 13
| 11
| 9
|
|
| 5
| 10
|
| 12
|
| 15
|
| 7
|
|
| f
|
| 5
| 12
|
|
| 14
|
| 13
|
| 11
|
|
| 10
|
| 2
| 8
|
| g
| 7
|
|
|
| 15
| 11
|
| 10
| 5
|
|
| 14
|
| 9
|
|
|
| h
| 10
| 6
| 9
| 8
| 7
| 2
| 16
| 12
| 4
| 1
| 13
| 15
| 11
| 3
| 14
| 5
|
| i
| 5
| 8
| 3
|
| 11
|
| 12
| 4
|
|
|
|
|
|
|
| 9
|
| j
|
| 14
| 15
|
|
|
| 5
|
| 2
| 12
| 11
| 9
|
|
|
| 10
|
| k
| 6
| 11
|
| 12
| 14
| 9
| 10
| 2
| 3
| 15
|
|
|
| 5
|
|
|
| l
| 9
| 7
| 2
|
| 8
|
|
|
|
|
|
|
|
| 12
| 1
| 11
|
| m
|
| 13
|
| 9
| 12
| 5
| 7
|
|
| 10
| 15
|
|
| 11
| 3
|
|
| n
| 12
| 15
| 5
|
|
|
|
|
|
| 9
|
| 11
|
| 10
|
|
|
| o
|
| 3
| 10
|
|
|
| 11
|
|
| 2
|
| 12
|
| 16
|
|
|
| p
| 11
| 1
|
|
| 6
| 10
|
|
|
|
|
|
|
|
|
| 15
|
backtrack.grid2 → grid3: a9 guess 7 ∈ {7|9}
pending={a9}
deduce.grid3: naked-singles
deduce.grid3: hidden-singles
deduce.grid3.rowa. a11 is 9 by hidden-single.
pending={a11}
deduce.grid3: naked-singles
deduce.grid3: hidden-singles
deduce.grid3.rowf. f9 is 9 by hidden-single.
pending={f9}
deduce.grid3: naked-singles
deduce.grid3: hidden-singles
deduce.grid3.rowf. f11 is 16 by hidden-single.
pending={f11}
deduce.grid3: naked-singles
deduce.grid3: hidden-singles
deduce.grid3.rowf. f12 is 7 by hidden-single.
pending={f12}
deduce.grid3: naked-singles
deduce.grid3: hidden-singles
deduce.grid3: naked-pairs
two's heap=c12 {1|2}, d1 {1|2}, c16 {1|2}, g3 {1|4}, d11 {1|2}, e10 {3|6}, e14 {1|6}, a14 {2|15}, f14 {1|6}, i12 {1|6}, d7 {3|6}, o6 {1|15}, a4 {2|15}, b1 {1|15}, e16 {4|16}, b14 {7|15}, g2 {2|16}, d5 {3|16}, g10 {3|6}, b15 {15|16}, g11 {2|8}, j14 {7|13}, o1 {4|8}, e2 {2|16}.
Naked-pair {1|2} in cells {c12, c16, d1, d11} contained within {rowc, rowd, box3}, updating cells {d3, d4, d5, d7, d8}:
- d3: {1|7|14} → {7|14}.
- d4: {1|2|7|14} → {7|14}.
Naked-pair {1|6} in cells {e14, f14, i12} contained within {col14, box8}, updating cells {a14, b14, e16, g13, g15, g16, i14, j14, p14}:
Naked-pair {3|6} in cells {d7, e10, g10} contained within {col10, box7}, updating cells {e12, g11, i10, l10, p10}:
- e12: {2|3|6|8} → {2|8}.
- i10: {6|7|13|16} → {7|13|16}.
- l10: {6|13|16} → {13|16}.
- p10: {3|7|13|16} → {7|13|16}.
Naked-pair {2|16} in cells {e2, g2} contained within {col2, box5}, updating cells {f1, f4, g3, g4}:
grid3
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
| 10
| 11
| 12
| 13
| 14
| 15
| 16
|
| a
| 3
| 4
| 6
|
| 5
| 12
| 1
| 11
| 7
| 8
| 9
| 16
| 13
|
| 10
| 14
|
| b
|
| 12
| 8
| 5
| 2
| 13
| 9
| 14
| 11
| 4
| 6
| 10
|
|
|
| 3
|
| c
| 13
| 9
| 11
| 16
| 10
| 4
| 15
| 7
| 12
| 14
| 3
|
| 6
| 8
| 5
|
|
| d
|
| 10
|
|
|
| 8
|
|
| 15
| 5
|
| 13
| 9
| 4
| 11
| 12
|
| e
| 14
|
| 13
| 11
| 9
|
|
| 5
| 10
|
| 12
|
| 15
|
| 7
|
|
| f
|
| 5
| 12
|
|
| 14
|
| 13
| 9
| 11
| 16
| 7
| 10
|
| 2
| 8
|
| g
| 7
|
|
|
| 15
| 11
|
| 10
| 5
|
|
| 14
|
| 9
|
|
|
| h
| 10
| 6
| 9
| 8
| 7
| 2
| 16
| 12
| 4
| 1
| 13
| 15
| 11
| 3
| 14
| 5
|
| i
| 5
| 8
| 3
|
| 11
|
| 12
| 4
|
|
|
|
|
|
|
| 9
|
| j
|
| 14
| 15
|
|
|
| 5
|
| 2
| 12
| 11
| 9
|
|
|
| 10
|
| k
| 6
| 11
|
| 12
| 14
| 9
| 10
| 2
| 3
| 15
|
|
|
| 5
|
|
|
| l
| 9
| 7
| 2
|
| 8
|
|
|
|
|
|
|
|
| 12
| 1
| 11
|
| m
|
| 13
|
| 9
| 12
| 5
| 7
|
|
| 10
| 15
|
|
| 11
| 3
|
|
| n
| 12
| 15
| 5
|
|
|
|
|
|
| 9
|
| 11
|
| 10
|
|
|
| o
|
| 3
| 10
|
|
|
| 11
|
|
| 2
|
| 12
|
| 16
|
|
|
| p
| 11
| 1
|
|
| 6
| 10
|
|
|
|
|
|
|
|
|
| 15
|
backtrack.grid3 → grid4: a4 guess 2 ∈ {2|15}
pending={a4}
deduce.grid4: naked-singles
- a14 is 15 by naked-single.
pending={a14}
- b14 is 7 by naked-single.
pending={b14}
- b15 is 16 by naked-single.
pending={b15}
- b13 is 1 by naked-single.
pending={b13}
- b1 is 15 by naked-single.
pending={b1}
- c16 is 2 by naked-single.
pending={c16}
- c12 is 1 by naked-single.
pending={c12}
- d1 is 1 by naked-single.
pending={d1}
- d11 is 2 by naked-single.
pending={d11}
- f1 is 4 by naked-single.
pending={f1}
- g3 is 1 by naked-single.
pending={g3}
- g4 is 3 by naked-single.
pending={g4}
- f4 is 15 by naked-single.
pending={f4}
- g10 is 6 by naked-single.
pending={g10}
- e10 is 3 by naked-single.
pending={e10}
- g11 is 8 by naked-single.
pending={g11}
- e12 is 2 by naked-single.
pending={e12}
- e2 is 16 by naked-single.
pending={e2}
- e16 is 4 by naked-single.
pending={e16}
- g2 is 2 by naked-single.
pending={g2}
- g7 is 4 by naked-single.
pending={g7}
- i12 is 6 by naked-single.
pending={i12}
- j1 is 16 by naked-single.
pending={j1}
- j14 is 13 by naked-single.
pending={j14}
- i15 is 15 by naked-single.
pending={i15}
- k3 is 4 by naked-single.
pending={k3}
- j4 is 1 by naked-single.
pending={j4}
- j5 is 3 by naked-single.
pending={j5}
- d5 is 16 by naked-single.
pending={d5}
- f5 is 1 by naked-single.
pending={f5}
- e6 is 6 by naked-single.
pending={e6}
- e7 is 8 by naked-single.
pending={e7}
- e14 is 1 by naked-single.
pending={e14}
- f7 is 3 by naked-single.
pending={f7}
- d7 is 6 by naked-single.
pending={d7}
- d8 is 3 by naked-single.
pending={d8}
- f14 is 6 by naked-single.
pending={f14}
- j6 is 7 by naked-single.
pending={j6}
- j8 is 6 by naked-single.
pending={j8}
- k12 is 8 by naked-single.
pending={k12}
grid4 didn't work: naked-singles ran out of candidates.
…backtrack.grid3 again
backtrack.grid3 → grid5: a4 guess 15 ∈ {2|15}
pending={a4}
deduce.grid5: naked-singles
- a14 is 2 by naked-single.
pending={a14}
- b1 is 1 by naked-single.
pending={b1}
- c16 is 1 by naked-single.
pending={c16}
- c12 is 2 by naked-single.
pending={c12}
- d1 is 2 by naked-single.
pending={d1}
- d11 is 1 by naked-single.
pending={d11}
- e12 is 8 by naked-single.
pending={e12}
- g11 is 2 by naked-single.
pending={g11}
- g2 is 16 by naked-single.
pending={g2}
- e2 is 2 by naked-single.
pending={e2}
deduce.grid5: hidden-singles
deduce.grid5.rowe. e16 is 16 by hidden-single.
pending={e16}
deduce.grid5: naked-singles
deduce.grid5: hidden-singles
deduce.grid5.rowe. e7 is 4 by hidden-single.
pending={e7}
deduce.grid5: naked-singles
deduce.grid5: hidden-singles
deduce.grid5.rowf. f1 is 15 by hidden-single.
pending={f1}
deduce.grid5: naked-singles
deduce.grid5: hidden-singles
deduce.grid5.rowf. f4 is 4 by hidden-single.
pending={f4}
deduce.grid5: naked-singles
- g3 is 1 by naked-single.
pending={g3}
- g4 is 3 by naked-single.
pending={g4}
- g10 is 6 by naked-single.
pending={g10}
- e10 is 3 by naked-single.
pending={e10}
- g7 is 8 by naked-single.
pending={g7}
deduce.grid5: hidden-singles
deduce.grid5.rowi. i13 is 2 by hidden-single.
pending={i13}
deduce.grid5: naked-singles
deduce.grid5: hidden-singles
deduce.grid5.rowk. k12 is 1 by hidden-single.
pending={k12}
deduce.grid5: naked-singles
- i12 is 6 by naked-single.
pending={i12}
- m12 is 4 by naked-single.
pending={m12}
- l12 is 5 by naked-single.
pending={l12}
- p12 is 3 by naked-single.
pending={p12}
deduce.grid5: hidden-singles
deduce.grid5.rowm. m16 is 2 by hidden-single.
pending={m16}
deduce.grid5: naked-singles
deduce.grid5: hidden-singles
deduce.grid5.rowm. m9 is 6 by hidden-single.
pending={m9}
deduce.grid5: naked-singles
deduce.grid5: hidden-singles
deduce.grid5.box11. k11 is 8 by hidden-single.
pending={k11}
deduce.grid5: naked-singles
deduce.grid5: hidden-singles
deduce.grid5.col11. l11 is 4 by hidden-single.
pending={l11}
deduce.grid5: naked-singles
deduce.grid5: hidden-singles
deduce.grid5.rowl. l4 is 10 by hidden-single.
pending={l4}
deduce.grid5: naked-singles
deduce.grid5: hidden-singles
deduce.grid5.rowi. i11 is 10 by hidden-single.
pending={i11}
deduce.grid5: naked-singles
deduce.grid5: hidden-singles
deduce.grid5.box11. i10 is 7 by hidden-single.
pending={i10}
deduce.grid5: naked-singles
deduce.grid5: hidden-singles
deduce.grid5.col6. j6 is 7 by hidden-single.
pending={j6}
deduce.grid5: naked-singles
- j14 is 13 by naked-single.
pending={j14}
- j4 is 1 by naked-single.
pending={j4}
- i4 is 13 by naked-single.
pending={i4}
deduce.grid5: hidden-singles
deduce.grid5.rowi. i6 is 1 by hidden-single.
pending={i6}
deduce.grid5: naked-singles
- e6 is 6 by naked-single.
pending={e6}
- e14 is 1 by naked-single.
pending={e14}
- f7 is 3 by naked-single.
pending={f7}
- d7 is 6 by naked-single.
pending={d7}
- f5 is 1 by naked-single.
pending={f5}
- f14 is 6 by naked-single.
pending={f14}
- l7 is 13 by naked-single.
pending={l7}
- l10 is 16 by naked-single.
pending={l10}
- i9 is 14 by naked-single.
pending={i9}
- i14 is 15 by naked-single.
pending={i14}
- b14 is 7 by naked-single.
pending={b14}
- b13 is 16 by naked-single.
pending={b13}
- b15 is 15 by naked-single.
pending={b15}
- i15 is 16 by naked-single.
pending={i15}
- k15 is 4 by naked-single.
pending={k15}
- k3 is 16 by naked-single.
pending={k3}
- j1 is 4 by naked-single.
pending={j1}
- k13 is 7 by naked-single.
pending={k13}
grid5 didn't work: naked-singles ran out of candidates.
…backtrack.grid3 again
grid3 didn't work: exhaustive search revealed no solution.
…backtrack.grid2 again
backtrack.grid2 → grid6: a9 guess 9 ∈ {7|9}
pending={a9}
deduce.grid6: naked-singles
deduce.grid6: hidden-singles
deduce.grid6.rowf. f11 is 9 by hidden-single.
pending={f11}
deduce.grid6: naked-singles
deduce.grid6: hidden-singles
deduce.grid6.rowf. f9 is 16 by hidden-single.
pending={f9}
deduce.grid6: naked-singles
deduce.grid6: hidden-singles
deduce.grid6.rowf. f12 is 7 by hidden-single.
pending={f12}
deduce.grid6: naked-singles
deduce.grid6: hidden-singles
deduce.grid6: naked-pairs
two's heap=c12 {1|2}, g3 {1|4}, c16 {1|2}, i12 {1|6}, e10 {3|6}, e14 {1|6}, d1 {1|2}, g10 {3|6}, d7 {3|6}, o1 {4|8}, b1 {1|15}, b14 {7|15}, e16 {4|16}, f14 {1|6}, g2 {2|16}, b15 {15|16}, a11 {2|7}, d5 {3|16}, g11 {2|8}, e2 {2|16}, j14 {7|13}, o6 {1|15}.
Naked-pair {1|6} in cells {e14, f14, i12} contained within {col14, box8}, updating cells {a14, b14, e16, g13, g15, g16, i14, j14, p14}:
Naked-pair {3|6} in cells {d7, e10, g10} contained within {col10, box7}, updating cells {e12, g11, i10, l10, p10}:
- e12: {2|3|6|8} → {2|8}.
- i10: {6|7|13|16} → {7|13|16}.
- l10: {6|13|16} → {13|16}.
- p10: {3|7|13|16} → {7|13|16}.
Naked-pair {2|16} in cells {e2, g2} contained within {col2, box5}, updating cells {f1, f4, g3, g4}:
grid6
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
| 10
| 11
| 12
| 13
| 14
| 15
| 16
|
| a
| 3
| 4
| 6
|
| 5
| 12
| 1
| 11
| 9
| 8
|
| 16
| 13
|
| 10
| 14
|
| b
|
| 12
| 8
| 5
| 2
| 13
| 9
| 14
| 11
| 4
| 6
| 10
|
|
|
| 3
|
| c
| 13
| 9
| 11
| 16
| 10
| 4
| 15
| 7
| 12
| 14
| 3
|
| 6
| 8
| 5
|
|
| d
|
| 10
|
|
|
| 8
|
|
| 15
| 5
|
| 13
| 9
| 4
| 11
| 12
|
| e
| 14
|
| 13
| 11
| 9
|
|
| 5
| 10
|
| 12
|
| 15
|
| 7
|
|
| f
|
| 5
| 12
|
|
| 14
|
| 13
| 16
| 11
| 9
| 7
| 10
|
| 2
| 8
|
| g
| 7
|
|
|
| 15
| 11
|
| 10
| 5
|
|
| 14
|
| 9
|
|
|
| h
| 10
| 6
| 9
| 8
| 7
| 2
| 16
| 12
| 4
| 1
| 13
| 15
| 11
| 3
| 14
| 5
|
| i
| 5
| 8
| 3
|
| 11
|
| 12
| 4
|
|
|
|
|
|
|
| 9
|
| j
|
| 14
| 15
|
|
|
| 5
|
| 2
| 12
| 11
| 9
|
|
|
| 10
|
| k
| 6
| 11
|
| 12
| 14
| 9
| 10
| 2
| 3
| 15
|
|
|
| 5
|
|
|
| l
| 9
| 7
| 2
|
| 8
|
|
|
|
|
|
|
|
| 12
| 1
| 11
|
| m
|
| 13
|
| 9
| 12
| 5
| 7
|
|
| 10
| 15
|
|
| 11
| 3
|
|
| n
| 12
| 15
| 5
|
|
|
|
|
|
| 9
|
| 11
|
| 10
|
|
|
| o
|
| 3
| 10
|
|
|
| 11
|
|
| 2
|
| 12
|
| 16
|
|
|
| p
| 11
| 1
|
|
| 6
| 10
|
|
|
|
|
|
|
|
|
| 15
|
backtrack.grid6 → grid7: a11 guess 2 ∈ {2|7}
pending={a11}
deduce.grid7: naked-singles
- c12 is 1 by naked-single.
pending={c12}
- c16 is 2 by naked-single.
pending={c16}
- d11 is 7 by naked-single.
pending={d11}
- g11 is 8 by naked-single.
pending={g11}
- e12 is 2 by naked-single.
pending={e12}
- e2 is 16 by naked-single.
pending={e2}
- e16 is 4 by naked-single.
pending={e16}
- g2 is 2 by naked-single.
pending={g2}
- i12 is 6 by naked-single.
pending={i12}
deduce.grid7: hidden-singles
deduce.grid7.rowe. e7 is 8 by hidden-single.
pending={e7}
deduce.grid7: naked-singles
deduce.grid7: hidden-singles
deduce.grid7.col3. p3 is 7 by hidden-single.
pending={p3}
deduce.grid7: naked-singles
deduce.grid7: hidden-singles
deduce.grid7.col4. a4 is 7 by hidden-single.
pending={a4}
deduce.grid7: naked-singles
- a14 is 15 by naked-single.
pending={a14}
- b14 is 7 by naked-single.
pending={b14}
- b15 is 16 by naked-single.
pending={b15}
- b13 is 1 by naked-single.
pending={b13}
- b1 is 15 by naked-single.
pending={b1}
- j14 is 13 by naked-single.
pending={j14}
- i15 is 15 by naked-single.
pending={i15}
deduce.grid7: hidden-singles
deduce.grid7.rowf. f4 is 15 by hidden-single.
pending={f4}
deduce.grid7: naked-singles
deduce.grid7: hidden-singles
grid7 didn't work: rowk is not bijective.
…backtrack.grid6 again
backtrack.grid6 → grid8: a11 guess 7 ∈ {2|7}
pending={a11}
deduce.grid8: naked-singles
deduce.grid8: hidden-singles
deduce.grid8.col12. p12 is 3 by hidden-single.
pending={p12}
deduce.grid8: naked-singles
deduce.grid8: hidden-singles
deduce.grid8.col12. l12 is 5 by hidden-single.
pending={l12}
deduce.grid8: naked-singles
deduce.grid8: hidden-singles
deduce.grid8: naked-pairs
two's heap=c12 {1|2}, d1 {1|2}, c16 {1|2}, g3 {1|4}, d11 {1|2}, e10 {3|6}, e14 {1|6}, a14 {2|15}, f14 {1|6}, g10 {3|6}, i12 {1|6}, o1 {4|8}, o6 {1|15}, b1 {1|15}, e12 {2|8}, e16 {4|16}, b14 {7|15}, d5 {3|16}, g2 {2|16}, b15 {15|16}, g11 {2|8}, d7 {3|6}, j14 {7|13}, l10 {13|16}, e2 {2|16}, a4 {2|15}.
Naked-pair {1|2} in cells {c12, c16, d1, d11} contained within {rowc, rowd, box3}, updating cells {d3, d4, d5, d7, d8}:
- d3: {1|7|14} → {7|14}.
- d4: {1|2|7|14} → {7|14}.
Naked-pair {1|6} in cells {e14, f14, i12} contained within {col14, box8}, updating cells {a14, b14, e16, g13, g15, g16, i14, j14, p14}:
Naked-pair {3|6} in cells {d7, e10, g10} contained within {col10, box7}, updating cells {e12, g11, i10, l10, p10}:
Naked-pair {2|8} in cells {e12, g11} contained within {box7}, updating cells {e10, g10}:
Naked-pair {2|16} in cells {e2, g2} contained within {col2, box5}, updating cells {f1, f4, g3, g4}:
grid8
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
| 10
| 11
| 12
| 13
| 14
| 15
| 16
|
| a
| 3
| 4
| 6
|
| 5
| 12
| 1
| 11
| 9
| 8
| 7
| 16
| 13
|
| 10
| 14
|
| b
|
| 12
| 8
| 5
| 2
| 13
| 9
| 14
| 11
| 4
| 6
| 10
|
|
|
| 3
|
| c
| 13
| 9
| 11
| 16
| 10
| 4
| 15
| 7
| 12
| 14
| 3
|
| 6
| 8
| 5
|
|
| d
|
| 10
|
|
|
| 8
|
|
| 15
| 5
|
| 13
| 9
| 4
| 11
| 12
|
| e
| 14
|
| 13
| 11
| 9
|
|
| 5
| 10
|
| 12
|
| 15
|
| 7
|
|
| f
|
| 5
| 12
|
|
| 14
|
| 13
| 16
| 11
| 9
| 7
| 10
|
| 2
| 8
|
| g
| 7
|
|
|
| 15
| 11
|
| 10
| 5
|
|
| 14
|
| 9
|
|
|
| h
| 10
| 6
| 9
| 8
| 7
| 2
| 16
| 12
| 4
| 1
| 13
| 15
| 11
| 3
| 14
| 5
|
| i
| 5
| 8
| 3
|
| 11
|
| 12
| 4
|
|
|
|
|
|
|
| 9
|
| j
|
| 14
| 15
|
|
|
| 5
|
| 2
| 12
| 11
| 9
|
|
|
| 10
|
| k
| 6
| 11
|
| 12
| 14
| 9
| 10
| 2
| 3
| 15
|
|
|
| 5
|
|
|
| l
| 9
| 7
| 2
|
| 8
|
|
|
|
|
|
| 5
|
| 12
| 1
| 11
|
| m
|
| 13
|
| 9
| 12
| 5
| 7
|
|
| 10
| 15
|
|
| 11
| 3
|
|
| n
| 12
| 15
| 5
|
|
|
|
|
|
| 9
|
| 11
|
| 10
|
|
|
| o
|
| 3
| 10
|
|
|
| 11
|
|
| 2
|
| 12
|
| 16
|
|
|
| p
| 11
| 1
|
|
| 6
| 10
|
|
|
|
|
| 3
|
|
|
| 15
|
backtrack.grid8 → grid9: a4 guess 2 ∈ {2|15}
pending={a4}
deduce.grid9: naked-singles
- a14 is 15 by naked-single.
pending={a14}
- b14 is 7 by naked-single.
pending={b14}
- b15 is 16 by naked-single.
pending={b15}
- b13 is 1 by naked-single.
pending={b13}
- b1 is 15 by naked-single.
pending={b1}
- c16 is 2 by naked-single.
pending={c16}
- c12 is 1 by naked-single.
pending={c12}
- d1 is 1 by naked-single.
pending={d1}
- d11 is 2 by naked-single.
pending={d11}
- f1 is 4 by naked-single.
pending={f1}
- g3 is 1 by naked-single.
pending={g3}
- g4 is 3 by naked-single.
pending={g4}
- f4 is 15 by naked-single.
pending={f4}
- g10 is 6 by naked-single.
pending={g10}
- e10 is 3 by naked-single.
pending={e10}
- g11 is 8 by naked-single.
pending={g11}
- e12 is 2 by naked-single.
pending={e12}
- e2 is 16 by naked-single.
pending={e2}
- e16 is 4 by naked-single.
pending={e16}
- g2 is 2 by naked-single.
pending={g2}
- g7 is 4 by naked-single.
pending={g7}
- i12 is 6 by naked-single.
pending={i12}
- j1 is 16 by naked-single.
pending={j1}
- j14 is 13 by naked-single.
pending={j14}
- i15 is 15 by naked-single.
pending={i15}
- k3 is 4 by naked-single.
pending={k3}
- j4 is 1 by naked-single.
pending={j4}
- j5 is 3 by naked-single.
pending={j5}
- d5 is 16 by naked-single.
pending={d5}
- f5 is 1 by naked-single.
pending={f5}
- e6 is 6 by naked-single.
pending={e6}
- e7 is 8 by naked-single.
pending={e7}
- e14 is 1 by naked-single.
pending={e14}
- f7 is 3 by naked-single.
pending={f7}
- d7 is 6 by naked-single.
pending={d7}
- d8 is 3 by naked-single.
pending={d8}
- f14 is 6 by naked-single.
pending={f14}
- j6 is 7 by naked-single.
pending={j6}
- j8 is 6 by naked-single.
pending={j8}
- k12 is 8 by naked-single.
pending={k12}
grid9 didn't work: naked-singles ran out of candidates.
…backtrack.grid8 again
backtrack.grid8 → grid10: a4 guess 15 ∈ {2|15}
pending={a4}
deduce.grid10: naked-singles
- a14 is 2 by naked-single.
pending={a14}
- b1 is 1 by naked-single.
pending={b1}
- c16 is 1 by naked-single.
pending={c16}
- c12 is 2 by naked-single.
pending={c12}
- d1 is 2 by naked-single.
pending={d1}
- d11 is 1 by naked-single.
pending={d11}
- e12 is 8 by naked-single.
pending={e12}
- g11 is 2 by naked-single.
pending={g11}
- g2 is 16 by naked-single.
pending={g2}
- e2 is 2 by naked-single.
pending={e2}
deduce.grid10: hidden-singles
deduce.grid10.rowe. e16 is 16 by hidden-single.
pending={e16}
deduce.grid10: naked-singles
deduce.grid10: hidden-singles
deduce.grid10.rowe. e7 is 4 by hidden-single.
pending={e7}
deduce.grid10: naked-singles
deduce.grid10: hidden-singles
deduce.grid10.rowf. f1 is 15 by hidden-single.
pending={f1}
deduce.grid10: naked-singles
deduce.grid10: hidden-singles
deduce.grid10.rowf. f4 is 4 by hidden-single.
pending={f4}
deduce.grid10: naked-singles
- g3 is 1 by naked-single.
pending={g3}
- g4 is 3 by naked-single.
pending={g4}
- g10 is 6 by naked-single.
pending={g10}
- e10 is 3 by naked-single.
pending={e10}
- g7 is 8 by naked-single.
pending={g7}
deduce.grid10: hidden-singles
deduce.grid10.rowi. i13 is 2 by hidden-single.
pending={i13}
deduce.grid10: naked-singles
deduce.grid10: hidden-singles
deduce.grid10.rowk. k12 is 1 by hidden-single.
pending={k12}
deduce.grid10: naked-singles
- i12 is 6 by naked-single.
pending={i12}
- m12 is 4 by naked-single.
pending={m12}
deduce.grid10: hidden-singles
deduce.grid10.rowm. m16 is 2 by hidden-single.
pending={m16}
deduce.grid10: naked-singles
deduce.grid10: hidden-singles
deduce.grid10.rowm. m9 is 6 by hidden-single.
pending={m9}
deduce.grid10: naked-singles
deduce.grid10: hidden-singles
deduce.grid10.box11. k11 is 8 by hidden-single.
pending={k11}
deduce.grid10: naked-singles
deduce.grid10: hidden-singles
deduce.grid10.col11. l11 is 4 by hidden-single.
pending={l11}
deduce.grid10: naked-singles
deduce.grid10: hidden-singles
deduce.grid10.rowl. l4 is 10 by hidden-single.
pending={l4}
deduce.grid10: naked-singles
deduce.grid10: hidden-singles
deduce.grid10.rowi. i11 is 10 by hidden-single.
pending={i11}
deduce.grid10: naked-singles
deduce.grid10: hidden-singles
deduce.grid10.box12. j15 is 6 by hidden-single.
pending={j15}
deduce.grid10: naked-singles
deduce.grid10: hidden-singles
deduce.grid10.rowj. j13 is 8 by hidden-single.
pending={j13}
deduce.grid10: naked-singles
deduce.grid10: hidden-singles
deduce.grid10.rowj. j1 is 4 by hidden-single.
pending={j1}
deduce.grid10: naked-singles
- k3 is 16 by naked-single.
pending={k3}
- m3 is 14 by naked-single.
pending={m3}
- d3 is 7 by naked-single.
pending={d3}
- d4 is 14 by naked-single.
pending={d4}
- m13 is 1 by naked-single.
pending={m13}
- o1 is 8 by naked-single.
pending={o1}
- m1 is 16 by naked-single.
pending={m1}
- m8 is 8 by naked-single.
pending={m8}
- p3 is 4 by naked-single.
pending={p3}
deduce.grid10: hidden-singles
deduce.grid10.col13. l13 is 3 by hidden-single.
pending={l13}
deduce.grid10: naked-singles
deduce.grid10: hidden-singles
deduce.grid10.rowl. l9 is 14 by hidden-single.
pending={l9}
deduce.grid10: naked-singles
deduce.grid10: hidden-singles
deduce.grid10.rowi. i14 is 14 by hidden-single.
pending={i14}
deduce.grid10: naked-singles
deduce.grid10: hidden-singles
deduce.grid10.col13. b13 is 16 by hidden-single.
pending={b13}
deduce.grid10: naked-singles
- b15 is 15 by naked-single.
pending={b15}
- b14 is 7 by naked-single.
pending={b14}
- j14 is 13 by naked-single.
pending={j14}
- i15 is 16 by naked-single.
pending={i15}
- j4 is 1 by naked-single.
pending={j4}
- i4 is 13 by naked-single.
pending={i4}
- i9 is 7 by naked-single.
pending={i9}
grid10 didn't work: naked-singles ran out of candidates.
…backtrack.grid8 again
grid8 didn't work: exhaustive search revealed no solution.
…backtrack.grid6 again
grid6 didn't work: exhaustive search revealed no solution.
…backtrack.grid2 again
grid2 didn't work: exhaustive search revealed no solution.
…backtrack.grid1 again
backtrack.grid1 → grid11: a5 guess 10 ∈ {5|10}
pending={a5}
deduce.grid11: naked-singles
- c5 is 5 by naked-single.
pending={c5}
deduce.grid11: hidden-singles
deduce.grid11.rowa. a15 is 5 by hidden-single.
pending={a15}
deduce.grid11: naked-singles
deduce.grid11: hidden-singles
deduce.grid11: naked-pairs
two's heap=c12 {1|2}, g3 {1|4}, d7 {3|6}, b1 {1|15}, o1 {4|8}, o6 {1|15}, d5 {3|16}, e2 {2|16}, g2 {2|16}, c3 {1|11}, a9 {7|9}, b15 {15|16}.
Naked-pair {2|16} in cells {e2, g2} contained within {col2, box5}, updating cells {f1, f4, g3, g4}:
grid11
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
| 10
| 11
| 12
| 13
| 14
| 15
| 16
|
| a
| 3
| 4
| 6
|
| 10
| 12
| 1
| 11
|
| 8
|
| 16
| 13
|
| 5
| 14
|
| b
|
| 12
| 8
| 5
| 2
| 13
| 9
| 14
| 11
| 4
| 6
| 10
|
|
|
|
|
| c
| 13
| 9
|
| 16
| 5
| 4
| 15
| 7
| 12
| 14
| 3
|
| 6
|
|
|
|
| d
|
| 10
|
|
|
| 8
|
|
| 15
| 5
|
| 13
|
|
|
| 12
|
| e
| 14
|
| 13
| 11
| 9
|
|
| 5
| 10
|
| 12
|
| 15
|
| 7
|
|
| f
|
| 5
| 12
|
|
| 14
|
| 13
|
| 11
|
|
| 10
|
| 2
| 8
|
| g
| 7
|
|
|
| 15
| 11
|
| 10
| 5
|
|
| 14
|
| 9
|
|
|
| h
| 10
| 6
| 9
| 8
| 7
| 2
| 16
| 12
| 4
| 1
| 13
| 15
| 11
| 3
| 14
| 5
|
| i
| 5
| 8
| 3
|
| 11
|
| 12
| 4
|
|
|
|
|
|
|
| 9
|
| j
|
| 14
| 15
|
|
|
| 5
|
| 2
| 12
| 11
| 9
|
|
|
|
|
| k
| 6
| 11
|
| 12
| 14
| 9
| 10
| 2
| 3
| 15
|
|
|
| 5
|
|
|
| l
| 9
| 7
| 2
|
| 8
|
|
|
|
|
|
|
|
| 12
| 1
| 11
|
| m
|
| 13
|
| 9
| 12
| 5
| 7
|
|
| 10
| 15
|
|
| 11
| 3
|
|
| n
| 12
| 15
| 5
|
|
|
|
|
|
| 9
|
| 11
|
| 10
|
|
|
| o
|
| 3
| 10
|
|
|
| 11
|
|
| 2
|
| 12
|
| 16
|
|
|
| p
|
| 1
|
|
| 6
| 10
|
|
|
|
|
|
|
|
|
| 15
|
backtrack.grid11 → grid12: a9 guess 7 ∈ {7|9}
pending={a9}
deduce.grid12: naked-singles
deduce.grid12: hidden-singles
deduce.grid12.rowa. a11 is 9 by hidden-single.
pending={a11}
deduce.grid12: naked-singles
deduce.grid12: hidden-singles
deduce.grid12.rowf. f9 is 9 by hidden-single.
pending={f9}
deduce.grid12: naked-singles
deduce.grid12: hidden-singles
deduce.grid12.rowf. f11 is 16 by hidden-single.
pending={f11}
deduce.grid12: naked-singles
deduce.grid12: hidden-singles
deduce.grid12.rowf. f12 is 7 by hidden-single.
pending={f12}
deduce.grid12: naked-singles
deduce.grid12: hidden-singles
deduce.grid12: naked-pairs
two's heap=c12 {1|2}, d11 {1|2}, g3 {1|4}, i12 {1|6}, e10 {3|6}, c3 {1|11}, g10 {3|6}, d7 {3|6}, b1 {1|15}, e2 {2|16}, a14 {2|15}, g2 {2|16}, a4 {2|15}, d5 {3|16}, g11 {2|8}, b15 {15|16}, o1 {4|8}, o6 {1|15}.
Naked-pair {3|6} in cells {d7, e10, g10} contained within {col10, box7}, updating cells {e12, g11, i10, l10, p10}:
- e12: {2|3|6|8} → {2|8}.
- i10: {6|7|13|16} → {7|13|16}.
- l10: {6|13|16} → {13|16}.
- p10: {3|7|13|16} → {7|13|16}.
Naked-pair {2|16} in cells {e2, g2} contained within {col2, box5}, updating cells {f1, f4, g3, g4}:
grid12
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
| 10
| 11
| 12
| 13
| 14
| 15
| 16
|
| a
| 3
| 4
| 6
|
| 10
| 12
| 1
| 11
| 7
| 8
| 9
| 16
| 13
|
| 5
| 14
|
| b
|
| 12
| 8
| 5
| 2
| 13
| 9
| 14
| 11
| 4
| 6
| 10
|
|
|
|
|
| c
| 13
| 9
|
| 16
| 5
| 4
| 15
| 7
| 12
| 14
| 3
|
| 6
|
|
|
|
| d
|
| 10
|
|
|
| 8
|
|
| 15
| 5
|
| 13
|
|
|
| 12
|
| e
| 14
|
| 13
| 11
| 9
|
|
| 5
| 10
|
| 12
|
| 15
|
| 7
|
|
| f
|
| 5
| 12
|
|
| 14
|
| 13
| 9
| 11
| 16
| 7
| 10
|
| 2
| 8
|
| g
| 7
|
|
|
| 15
| 11
|
| 10
| 5
|
|
| 14
|
| 9
|
|
|
| h
| 10
| 6
| 9
| 8
| 7
| 2
| 16
| 12
| 4
| 1
| 13
| 15
| 11
| 3
| 14
| 5
|
| i
| 5
| 8
| 3
|
| 11
|
| 12
| 4
|
|
|
|
|
|
|
| 9
|
| j
|
| 14
| 15
|
|
|
| 5
|
| 2
| 12
| 11
| 9
|
|
|
|
|
| k
| 6
| 11
|
| 12
| 14
| 9
| 10
| 2
| 3
| 15
|
|
|
| 5
|
|
|
| l
| 9
| 7
| 2
|
| 8
|
|
|
|
|
|
|
|
| 12
| 1
| 11
|
| m
|
| 13
|
| 9
| 12
| 5
| 7
|
|
| 10
| 15
|
|
| 11
| 3
|
|
| n
| 12
| 15
| 5
|
|
|
|
|
|
| 9
|
| 11
|
| 10
|
|
|
| o
|
| 3
| 10
|
|
|
| 11
|
|
| 2
|
| 12
|
| 16
|
|
|
| p
|
| 1
|
|
| 6
| 10
|
|
|
|
|
|
|
|
|
| 15
|
backtrack.grid12 → grid13: a4 guess 2 ∈ {2|15}
pending={a4}
deduce.grid13: naked-singles
- a14 is 15 by naked-single.
pending={a14}
- b15 is 16 by naked-single.
pending={b15}
deduce.grid13: hidden-singles
deduce.grid13.rowb. b1 is 15 by hidden-single.
pending={b1}
deduce.grid13: naked-singles
deduce.grid13: hidden-singles
deduce.grid13.rowf. f4 is 15 by hidden-single.
pending={f4}
deduce.grid13: naked-singles
deduce.grid13: hidden-singles
deduce.grid13.col4. g4 is 3 by hidden-single.
pending={g4}
deduce.grid13: naked-singles
- g10 is 6 by naked-single.
pending={g10}
- e10 is 3 by naked-single.
pending={e10}
deduce.grid13: hidden-singles
deduce.grid13.col12. p12 is 3 by hidden-single.
pending={p12}
deduce.grid13: naked-singles
deduce.grid13: hidden-singles
deduce.grid13.col12. l12 is 5 by hidden-single.
pending={l12}
deduce.grid13: naked-singles
deduce.grid13: hidden-singles
deduce.grid13.col15. i15 is 15 by hidden-single.
pending={i15}
deduce.grid13: naked-singles
deduce.grid13: hidden-singles
deduce.grid13: naked-pairs
two's heap=c12 {1|2}, f1 {1|4}, d11 {1|2}, i12 {1|6}, e6 {1|6}, g3 {1|4}, d7 {3|6}, c3 {1|11}, o1 {4|8}, d5 {3|16}, e12 {2|8}, g2 {2|16}, b14 {1|7}, g7 {4|8}, g11 {2|8}, e2 {2|16}, l10 {13|16}, d1 {1|11}, o6 {1|15}.
Naked-pair {1|4} in cells {f1, g3} contained within {box5}, updating cells {e2, g2}:
Naked-pair {1|11} in cells {c3, d1} contained within {box1}, updating cells {d3, d4}:
- d3: {1|7|11|14} → {7|14}.
- d4: {1|7|14} → {7|14}.
Naked-pair {2|16} in cells {e2, g2} contained within {col2, box5}, updating cells {f1, g3}:
grid13
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
| 10
| 11
| 12
| 13
| 14
| 15
| 16
|
| a
| 3
| 4
| 6
| 2
| 10
| 12
| 1
| 11
| 7
| 8
| 9
| 16
| 13
| 15
| 5
| 14
|
| b
| 15
| 12
| 8
| 5
| 2
| 13
| 9
| 14
| 11
| 4
| 6
| 10
|
|
| 16
|
|
| c
| 13
| 9
|
| 16
| 5
| 4
| 15
| 7
| 12
| 14
| 3
|
| 6
|
|
|
|
| d
|
| 10
|
|
|
| 8
|
|
| 15
| 5
|
| 13
|
|
|
| 12
|
| e
| 14
|
| 13
| 11
| 9
|
|
| 5
| 10
| 3
| 12
|
| 15
|
| 7
|
|
| f
|
| 5
| 12
| 15
|
| 14
|
| 13
| 9
| 11
| 16
| 7
| 10
|
| 2
| 8
|
| g
| 7
|
|
| 3
| 15
| 11
|
| 10
| 5
| 6
|
| 14
|
| 9
|
|
|
| h
| 10
| 6
| 9
| 8
| 7
| 2
| 16
| 12
| 4
| 1
| 13
| 15
| 11
| 3
| 14
| 5
|
| i
| 5
| 8
| 3
|
| 11
|
| 12
| 4
|
|
|
|
|
|
| 15
| 9
|
| j
|
| 14
| 15
|
|
|
| 5
|
| 2
| 12
| 11
| 9
|
|
|
|
|
| k
| 6
| 11
|
| 12
| 14
| 9
| 10
| 2
| 3
| 15
|
|
|
| 5
|
|
|
| l
| 9
| 7
| 2
|
| 8
|
|
|
|
|
|
| 5
|
| 12
| 1
| 11
|
| m
|
| 13
|
| 9
| 12
| 5
| 7
|
|
| 10
| 15
|
|
| 11
| 3
|
|
| n
| 12
| 15
| 5
|
|
|
|
|
|
| 9
|
| 11
|
| 10
|
|
|
| o
|
| 3
| 10
|
|
|
| 11
|
|
| 2
|
| 12
|
| 16
|
|
|
| p
|
| 1
|
|
| 6
| 10
|
|
|
|
|
| 3
|
|
|
| 15
|
backtrack.grid13 → grid14: b14 guess 1 ∈ {1|7}
pending={b14}
deduce.grid14: naked-singles
deduce.grid14: hidden-singles
deduce.grid14: naked-pairs
two's heap=c12 {1|2}, f1 {1|4}, d11 {1|2}, d7 {3|6}, g3 {1|4}, o1 {4|8}, e6 {1|6}, e14 {4|6}, f14 {4|6}, b13 {3|7}, i12 {1|6}, c16 {2|10}, o6 {1|15}, d1 {1|11}, e12 {2|8}, d3 {7|14}, b16 {3|7}, d4 {7|14}, g2 {2|16}, d5 {3|16}, g7 {4|8}, g11 {2|8}, c14 {2|8}, l10 {13|16}, c3 {1|11}, e2 {2|16}.
Naked-pair {1|4} in cells {f1, g3} contained within {box5}, updating cells {e2, g2}:
Naked-pair {4|6} in cells {e14, f14} contained within {col14, box8}, updating cells {c14, d14, e16, g13, g15, g16, i14, j14, p14}:
- d14: {2|4|7} → {2|7}.
- e16: {1|4|6|16} → {1|16}.
- g13: {1|4|12|16} → {1|12|16}.
- g15: {4|12|13} → {12|13}.
- g16: {1|4|13|16} → {1|13|16}.
- i14: {2|6|7|13|14} → {2|7|13|14}.
- j14: {4|6|7|8|13} → {7|8|13}.
- p14: {2|4|7|8|13|14} → {2|7|8|13|14}.
Naked-pair {3|7} in cells {b13, b16} contained within {rowb, box4}, updating cells {c14, c15, c16, d13, d14, d15}:
- d13: {2|3|4|7|9} → {2|4|9}.
- d14: {2|7} → {2}. Solved.
Naked-pair {1|11} in cells {c3, d1} contained within {box1}, updating cells {d3, d4}:
Naked-pair {7|14} in cells {d3, d4} contained within {rowd, box1}, updating cells {c3, d1, d5, d7, d8, d11, d13, d14, d15}:
Naked-pair {2|16} in cells {e2, g2} contained within {col2, box5}, updating cells {f1, g3}:
pending={d14}
deduce.grid14: naked-singles
- c14 is 8 by naked-single.
pending={c14}
- c16 is 10 by naked-single.
pending={c16}
- c15 is 11 by naked-single.
pending={c15}
- c3 is 1 by naked-single.
pending={c3}
- c12 is 2 by naked-single.
pending={c12}
- d1 is 11 by naked-single.
pending={d1}
- d11 is 1 by naked-single.
pending={d11}
- e12 is 8 by naked-single.
pending={e12}
- g3 is 4 by naked-single.
pending={g3}
- f1 is 1 by naked-single.
pending={f1}
- g7 is 8 by naked-single.
pending={g7}
- g11 is 2 by naked-single.
pending={g11}
- g2 is 16 by naked-single.
pending={g2}
- e2 is 2 by naked-single.
pending={e2}
- k3 is 16 by naked-single.
pending={k3}
- j1 is 4 by naked-single.
pending={j1}
- m3 is 14 by naked-single.
pending={m3}
- d3 is 7 by naked-single.
pending={d3}
- d4 is 14 by naked-single.
pending={d4}
- o1 is 8 by naked-single.
pending={o1}
- p3 is 11 by naked-single.
pending={p3}
deduce.grid14: hidden-singles
deduce.grid14.rowe. e16 is 16 by hidden-single.
pending={e16}
deduce.grid14: naked-singles
deduce.grid14: hidden-singles
deduce.grid14.rowe. e6 is 1 by hidden-single.
pending={e6}
deduce.grid14: naked-singles
- o6 is 15 by naked-single.
pending={o6}
deduce.grid14: hidden-singles
deduce.grid14.rowi. i13 is 2 by hidden-single.
pending={i13}
deduce.grid14: naked-singles
deduce.grid14: hidden-singles
deduce.grid14.rowk. k12 is 1 by hidden-single.
pending={k12}
deduce.grid14: naked-singles
- i12 is 6 by naked-single.
pending={i12}
- m12 is 4 by naked-single.
pending={m12}
deduce.grid14: hidden-singles
deduce.grid14.rowi. i4 is 1 by hidden-single.
pending={i4}
deduce.grid14: naked-singles
deduce.grid14: hidden-singles
deduce.grid14.rowi. i11 is 10 by hidden-single.
pending={i11}
deduce.grid14: naked-singles
deduce.grid14: hidden-singles
deduce.grid14.rowl. l4 is 10 by hidden-single.
deduce.grid14.rowl. l8 is 15 by hidden-single.
pending={l4, l8}
deduce.grid14: naked-singles
- j4 is 13 by naked-single.
pending={j4}
- j14 is 7 by naked-single.
pending={j14}
deduce.grid14: hidden-singles
deduce.grid14.rowj. j15 is 10 by hidden-single.
pending={j15}
deduce.grid14: naked-singles
deduce.grid14: hidden-singles
deduce.grid14.rowj. j13 is 8 by hidden-single.
pending={j13}
deduce.grid14: naked-singles
- k13 is 4 by naked-single.
pending={k13}
- d13 is 9 by naked-single.
pending={d13}
- d15 is 4 by naked-single.
pending={d15}
- k15 is 13 by naked-single.
pending={k15}
- g15 is 12 by naked-single.
pending={g15}
- g13 is 1 by naked-single.
pending={g13}
- g16 is 13 by naked-single.
pending={g16}
- i14 is 14 by naked-single.
pending={i14}
grid14 didn't work: naked-singles ran out of candidates.
…backtrack.grid13 again
backtrack.grid13 → grid15: b14 guess 7 ∈ {1|7}
pending={b14}
deduce.grid15: naked-singles
deduce.grid15: hidden-singles
deduce.grid15: naked-pairs
two's heap=c12 {1|2}, d11 {1|2}, f1 {1|4}, b16 {1|3}, b13 {1|3}, e12 {2|8}, e6 {1|6}, g3 {1|4}, i12 {1|6}, o1 {4|8}, o6 {1|15}, d3 {7|14}, c3 {1|11}, d4 {7|14}, g2 {2|16}, d5 {3|16}, g7 {4|8}, g11 {2|8}, d7 {3|6}, l10 {13|16}, d1 {1|11}, e2 {2|16}.
Naked-pair {1|3} in cells {b13, b16} contained within {rowb, box4}, updating cells {c14, c15, c16, d13, d14, d15}:
- c14: {1|2|8} → {2|8}.
- c16: {1|2|10} → {2|10}.
- d13: {1|2|3|4|9} → {2|4|9}.
- d14: {1|2|4} → {2|4}.
Naked-pair {1|4} in cells {f1, g3} contained within {box5}, updating cells {e2, g2}:
Naked-pair {1|11} in cells {c3, d1} contained within {box1}, updating cells {d3, d4}:
Naked-pair {7|14} in cells {d3, d4} contained within {rowd, box1}, updating cells {c3, d1, d5, d7, d8, d11, d13, d14, d15}:
Naked-pair {2|16} in cells {e2, g2} contained within {col2, box5}, updating cells {f1, g3}:
grid15
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
| 10
| 11
| 12
| 13
| 14
| 15
| 16
|
| a
| 3
| 4
| 6
| 2
| 10
| 12
| 1
| 11
| 7
| 8
| 9
| 16
| 13
| 15
| 5
| 14
|
| b
| 15
| 12
| 8
| 5
| 2
| 13
| 9
| 14
| 11
| 4
| 6
| 10
|
| 7
| 16
|
|
| c
| 13
| 9
|
| 16
| 5
| 4
| 15
| 7
| 12
| 14
| 3
|
| 6
|
|
|
|
| d
|
| 10
|
|
|
| 8
|
|
| 15
| 5
|
| 13
|
|
|
| 12
|
| e
| 14
|
| 13
| 11
| 9
|
|
| 5
| 10
| 3
| 12
|
| 15
|
| 7
|
|
| f
|
| 5
| 12
| 15
|
| 14
|
| 13
| 9
| 11
| 16
| 7
| 10
|
| 2
| 8
|
| g
| 7
|
|
| 3
| 15
| 11
|
| 10
| 5
| 6
|
| 14
|
| 9
|
|
|
| h
| 10
| 6
| 9
| 8
| 7
| 2
| 16
| 12
| 4
| 1
| 13
| 15
| 11
| 3
| 14
| 5
|
| i
| 5
| 8
| 3
|
| 11
|
| 12
| 4
|
|
|
|
|
|
| 15
| 9
|
| j
|
| 14
| 15
|
|
|
| 5
|
| 2
| 12
| 11
| 9
|
|
|
|
|
| k
| 6
| 11
|
| 12
| 14
| 9
| 10
| 2
| 3
| 15
|
|
|
| 5
|
|
|
| l
| 9
| 7
| 2
|
| 8
|
|
|
|
|
|
| 5
|
| 12
| 1
| 11
|
| m
|
| 13
|
| 9
| 12
| 5
| 7
|
|
| 10
| 15
|
|
| 11
| 3
|
|
| n
| 12
| 15
| 5
|
|
|
|
|
|
| 9
|
| 11
|
| 10
|
|
|
| o
|
| 3
| 10
|
|
|
| 11
|
|
| 2
|
| 12
|
| 16
|
|
|
| p
|
| 1
|
|
| 6
| 10
|
|
|
|
|
| 3
|
|
|
| 15
|
backtrack.grid15 → grid16: b13 guess 1 ∈ {1|3}
pending={b13}
deduce.grid16: naked-singles
- b16 is 3 by naked-single.
pending={b16}
deduce.grid16: hidden-singles
deduce.grid16: naked-pairs
two's heap=c12 {1|2}, d11 {1|2}, f1 {1|4}, g3 {1|4}, d14 {2|4}, c14 {2|8}, e6 {1|6}, c16 {2|10}, g11 {2|8}, i12 {1|6}, d7 {3|6}, e2 {2|16}, d3 {7|14}, d4 {7|14}, e12 {2|8}, d5 {3|16}, g2 {2|16}, c3 {1|11}, g7 {4|8}, d1 {1|11}, l10 {13|16}, o1 {4|8}, o6 {1|15}.
Naked-pair {1|4} in cells {f1, g3} contained within {box5}, updating cells {e2, g2}:
Naked-pair {1|11} in cells {c3, d1} contained within {box1}, updating cells {d3, d4}:
Naked-pair {7|14} in cells {d3, d4} contained within {rowd, box1}, updating cells {c3, d1, d5, d7, d8, d11, d13, d14, d15}:
Naked-pair {2|16} in cells {e2, g2} contained within {col2, box5}, updating cells {f1, g3}:
grid16
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
| 10
| 11
| 12
| 13
| 14
| 15
| 16
|
| a
| 3
| 4
| 6
| 2
| 10
| 12
| 1
| 11
| 7
| 8
| 9
| 16
| 13
| 15
| 5
| 14
|
| b
| 15
| 12
| 8
| 5
| 2
| 13
| 9
| 14
| 11
| 4
| 6
| 10
| 1
| 7
| 16
| 3
|
| c
| 13
| 9
|
| 16
| 5
| 4
| 15
| 7
| 12
| 14
| 3
|
| 6
|
|
|
|
| d
|
| 10
|
|
|
| 8
|
|
| 15
| 5
|
| 13
|
|
|
| 12
|
| e
| 14
|
| 13
| 11
| 9
|
|
| 5
| 10
| 3
| 12
|
| 15
|
| 7
|
|
| f
|
| 5
| 12
| 15
|
| 14
|
| 13
| 9
| 11
| 16
| 7
| 10
|
| 2
| 8
|
| g
| 7
|
|
| 3
| 15
| 11
|
| 10
| 5
| 6
|
| 14
|
| 9
|
|
|
| h
| 10
| 6
| 9
| 8
| 7
| 2
| 16
| 12
| 4
| 1
| 13
| 15
| 11
| 3
| 14
| 5
|
| i
| 5
| 8
| 3
|
| 11
|
| 12
| 4
|
|
|
|
|
|
| 15
| 9
|
| j
|
| 14
| 15
|
|
|
| 5
|
| 2
| 12
| 11
| 9
|
|
|
|
|
| k
| 6
| 11
|
| 12
| 14
| 9
| 10
| 2
| 3
| 15
|
|
|
| 5
|
|
|
| l
| 9
| 7
| 2
|
| 8
|
|
|
|
|
|
| 5
|
| 12
| 1
| 11
|
| m
|
| 13
|
| 9
| 12
| 5
| 7
|
|
| 10
| 15
|
|
| 11
| 3
|
|
| n
| 12
| 15
| 5
|
|
|
|
|
|
| 9
|
| 11
|
| 10
|
|
|
| o
|
| 3
| 10
|
|
|
| 11
|
|
| 2
|
| 12
|
| 16
|
|
|
| p
|
| 1
|
|
| 6
| 10
|
|
|
|
|
| 3
|
|
|
| 15
|
backtrack.grid16 → grid17: c3 guess 1 ∈ {1|11}
pending={c3}
deduce.grid17: naked-singles
- c12 is 2 by naked-single.
pending={c12}
- c14 is 8 by naked-single.
pending={c14}
- c16 is 10 by naked-single.
pending={c16}
- c15 is 11 by naked-single.
pending={c15}
- d1 is 11 by naked-single.
pending={d1}
- d11 is 1 by naked-single.
pending={d11}
- e12 is 8 by naked-single.
pending={e12}
- g3 is 4 by naked-single.
pending={g3}
- f1 is 1 by naked-single.
pending={f1}
- g7 is 8 by naked-single.
pending={g7}
- g11 is 2 by naked-single.
pending={g11}
- g2 is 16 by naked-single.
pending={g2}
- e2 is 2 by naked-single.
pending={e2}
- g13 is 12 by naked-single.
pending={g13}
- g15 is 13 by naked-single.
pending={g15}
- g16 is 1 by naked-single.
pending={g16}
- k3 is 16 by naked-single.
pending={k3}
- j1 is 4 by naked-single.
pending={j1}
- m3 is 14 by naked-single.
pending={m3}
- d3 is 7 by naked-single.
pending={d3}
- d4 is 14 by naked-single.
pending={d4}
- o1 is 8 by naked-single.
pending={o1}
- p3 is 11 by naked-single.
pending={p3}
deduce.grid17: hidden-singles
deduce.grid17.rowe. e6 is 1 by hidden-single.
deduce.grid17.rowe. e16 is 16 by hidden-single.
pending={e6, e16}
deduce.grid17: naked-singles
- o6 is 15 by naked-single.
pending={o6}
deduce.grid17: hidden-singles
deduce.grid17.rowk. k12 is 1 by hidden-single.
deduce.grid17.rowk. k16 is 13 by hidden-single.
pending={k12, k16}
deduce.grid17: naked-singles
- i12 is 6 by naked-single.
pending={i12}
- j14 is 6 by naked-single.
pending={j14}
- e14 is 4 by naked-single.
pending={e14}
- d14 is 2 by naked-single.
pending={d14}
- e7 is 6 by naked-single.
pending={e7}
- d7 is 3 by naked-single.
pending={d7}
- d5 is 16 by naked-single.
pending={d5}
- d8 is 6 by naked-single.
pending={d8}
- f7 is 4 by naked-single.
pending={f7}
- f5 is 3 by naked-single.
pending={f5}
grid17 didn't work: naked-singles ran out of candidates.
…backtrack.grid16 again
backtrack.grid16 → grid18: c3 guess 11 ∈ {1|11}
pending={c3}
deduce.grid18: naked-singles
- d1 is 1 by naked-single.
pending={d1}
- d11 is 2 by naked-single.
pending={d11}
- c12 is 1 by naked-single.
pending={c12}
- d14 is 4 by naked-single.
pending={d14}
- d13 is 9 by naked-single.
pending={d13}
- d15 is 11 by naked-single.
pending={d15}
- f1 is 4 by naked-single.
pending={f1}
- g3 is 1 by naked-single.
pending={g3}
- g11 is 8 by naked-single.
pending={g11}
- e12 is 2 by naked-single.
pending={e12}
- e2 is 16 by naked-single.
pending={e2}
- g2 is 2 by naked-single.
pending={g2}
- g7 is 4 by naked-single.
pending={g7}
- i12 is 6 by naked-single.
pending={i12}
- j1 is 16 by naked-single.
pending={j1}
- k3 is 4 by naked-single.
pending={k3}
- k12 is 8 by naked-single.
pending={k12}
- k15 is 13 by naked-single.
pending={k15}
- g15 is 12 by naked-single.
pending={g15}
- g13 is 16 by naked-single.
pending={g13}
- g16 is 13 by naked-single.
pending={g16}
- k13 is 7 by naked-single.
pending={k13}
- k11 is 1 by naked-single.
pending={k11}
- k16 is 16 by naked-single.
pending={k16}
- m12 is 4 by naked-single.
pending={m12}
- o1 is 8 by naked-single.
pending={o1}
- m1 is 2 by naked-single.
pending={m1}
- p1 is 11 by naked-single.
pending={p1}
deduce.grid18: hidden-singles
deduce.grid18.rowe. e7 is 8 by hidden-single.
deduce.grid18.rowe. e16 is 4 by hidden-single.
pending={e7, e16}
deduce.grid18: naked-singles
deduce.grid18: hidden-singles
deduce.grid18.rowj. j6 is 7 by hidden-single.
pending={j6}
deduce.grid18: naked-singles
deduce.grid18: hidden-singles
deduce.grid18.rowp. p13 is 12 by hidden-single.
pending={p13}
deduce.grid18: naked-singles
deduce.grid18: hidden-singles
deduce.grid18.rowp. p11 is 5 by hidden-single.
pending={p11}
deduce.grid18: naked-singles
deduce.grid18: hidden-singles
deduce.grid18.rowo. o13 is 5 by hidden-single.
pending={o13}
deduce.grid18: naked-singles
deduce.grid18: hidden-singles
deduce.grid18.col11. l11 is 4 by hidden-single.
pending={l11}
deduce.grid18: naked-singles
deduce.grid18: hidden-singles
deduce.grid18.rowl. l4 is 10 by hidden-single.
pending={l4}
deduce.grid18: naked-singles
deduce.grid18: hidden-singles
deduce.grid18.rowi. i11 is 10 by hidden-single.
pending={i11}
deduce.grid18: naked-singles
deduce.grid18: hidden-singles
deduce.grid18.rowi. i10 is 7 by hidden-single.
pending={i10}
deduce.grid18: naked-singles
deduce.grid18: hidden-singles
deduce.grid18.col14. p14 is 13 by hidden-single.
pending={p14}
deduce.grid18: naked-singles
- p10 is 16 by naked-single.
pending={p10}
- l10 is 13 by naked-single.
pending={l10}
deduce.grid18: hidden-singles
deduce.grid18.rowi. i4 is 13 by hidden-single.
pending={i4}
deduce.grid18: naked-singles
- j4 is 1 by naked-single.
pending={j4}
deduce.grid18: hidden-singles
deduce.grid18.rowi. i6 is 1 by hidden-single.
pending={i6}
deduce.grid18: naked-singles
- e6 is 6 by naked-single.
pending={e6}
- e14 is 1 by naked-single.
pending={e14}
- f7 is 3 by naked-single.
pending={f7}
- d7 is 6 by naked-single.
pending={d7}
- f5 is 1 by naked-single.
pending={f5}
- f14 is 6 by naked-single.
pending={f14}
- j14 is 8 by naked-single.
pending={j14}
- c14 is 2 by naked-single.
pending={c14}
- c16 is 10 by naked-single.
pending={c16}
- c15 is 8 by naked-single.
pending={c15}
- i14 is 14 by naked-single.
pending={i14}
- i9 is 16 by naked-single.
pending={i9}
- i13 is 2 by naked-single.
pending={i13}
- j16 is 6 by naked-single.
pending={j16}
- j8 is 3 by naked-single.
pending={j8}
- d8 is 16 by naked-single.
pending={d8}
- d5 is 3 by naked-single.
pending={d5}
- j5 is 13 by naked-single.
pending={j5}
- j13 is 4 by naked-single.
pending={j13}
- j15 is 10 by naked-single.
pending={j15}
grid18 didn't work: naked-singles ran out of candidates.
…backtrack.grid16 again
grid16 didn't work: exhaustive search revealed no solution.
…backtrack.grid15 again
backtrack.grid15 → grid19: b13 guess 3 ∈ {1|3}
pending={b13}
deduce.grid19: naked-singles
- b16 is 1 by naked-single.
pending={b16}
deduce.grid19: hidden-singles
deduce.grid19.col16. j16 is 3 by hidden-single.
pending={j16}
deduce.grid19: naked-singles
deduce.grid19: hidden-singles
deduce.grid19.col16. c16 is 10 by hidden-single.
pending={c16}
deduce.grid19: naked-singles
deduce.grid19: hidden-singles
deduce.grid19.col15. j15 is 10 by hidden-single.
pending={j15}
deduce.grid19: naked-singles
deduce.grid19: hidden-singles
deduce.grid19: naked-pairs
two's heap=c12 {1|2}, d11 {1|2}, f1 {1|4}, g3 {1|4}, d14 {2|4}, c14 {2|8}, e6 {1|6}, c3 {1|11}, g11 {2|8}, i12 {1|6}, d7 {3|6}, e2 {2|16}, d3 {7|14}, d4 {7|14}, e12 {2|8}, d5 {3|16}, g2 {2|16}, c15 {8|11}, g7 {4|8}, d1 {1|11}, l10 {13|16}, o1 {4|8}, o6 {1|15}.
Naked-pair {1|4} in cells {f1, g3} contained within {box5}, updating cells {e2, g2}:
Naked-pair {1|11} in cells {c3, d1} contained within {box1}, updating cells {d3, d4}:
Naked-pair {7|14} in cells {d3, d4} contained within {rowd, box1}, updating cells {c3, d1, d5, d7, d8, d11, d13, d14, d15}:
Naked-pair {2|16} in cells {e2, g2} contained within {col2, box5}, updating cells {f1, g3}:
grid19
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
| 10
| 11
| 12
| 13
| 14
| 15
| 16
|
| a
| 3
| 4
| 6
| 2
| 10
| 12
| 1
| 11
| 7
| 8
| 9
| 16
| 13
| 15
| 5
| 14
|
| b
| 15
| 12
| 8
| 5
| 2
| 13
| 9
| 14
| 11
| 4
| 6
| 10
| 3
| 7
| 16
| 1
|
| c
| 13
| 9
|
| 16
| 5
| 4
| 15
| 7
| 12
| 14
| 3
|
| 6
|
|
| 10
|
| d
|
| 10
|
|
|
| 8
|
|
| 15
| 5
|
| 13
|
|
|
| 12
|
| e
| 14
|
| 13
| 11
| 9
|
|
| 5
| 10
| 3
| 12
|
| 15
|
| 7
|
|
| f
|
| 5
| 12
| 15
|
| 14
|
| 13
| 9
| 11
| 16
| 7
| 10
|
| 2
| 8
|
| g
| 7
|
|
| 3
| 15
| 11
|
| 10
| 5
| 6
|
| 14
|
| 9
|
|
|
| h
| 10
| 6
| 9
| 8
| 7
| 2
| 16
| 12
| 4
| 1
| 13
| 15
| 11
| 3
| 14
| 5
|
| i
| 5
| 8
| 3
|
| 11
|
| 12
| 4
|
|
|
|
|
|
| 15
| 9
|
| j
|
| 14
| 15
|
|
|
| 5
|
| 2
| 12
| 11
| 9
|
|
| 10
| 3
|
| k
| 6
| 11
|
| 12
| 14
| 9
| 10
| 2
| 3
| 15
|
|
|
| 5
|
|
|
| l
| 9
| 7
| 2
|
| 8
|
|
|
|
|
|
| 5
|
| 12
| 1
| 11
|
| m
|
| 13
|
| 9
| 12
| 5
| 7
|
|
| 10
| 15
|
|
| 11
| 3
|
|
| n
| 12
| 15
| 5
|
|
|
|
|
|
| 9
|
| 11
|
| 10
|
|
|
| o
|
| 3
| 10
|
|
|
| 11
|
|
| 2
|
| 12
|
| 16
|
|
|
| p
|
| 1
|
|
| 6
| 10
|
|
|
|
|
| 3
|
|
|
| 15
|
backtrack.grid19 → grid20: c3 guess 1 ∈ {1|11}
pending={c3}
deduce.grid20: naked-singles
- c12 is 2 by naked-single.
pending={c12}
- c14 is 8 by naked-single.
pending={c14}
- c15 is 11 by naked-single.
pending={c15}
- d1 is 11 by naked-single.
pending={d1}
- d11 is 1 by naked-single.
pending={d11}
- e12 is 8 by naked-single.
pending={e12}
- g3 is 4 by naked-single.
pending={g3}
- f1 is 1 by naked-single.
pending={f1}
- g7 is 8 by naked-single.
pending={g7}
- g11 is 2 by naked-single.
pending={g11}
- g2 is 16 by naked-single.
pending={g2}
- e2 is 2 by naked-single.
pending={e2}
- g16 is 13 by naked-single.
pending={g16}
- g15 is 12 by naked-single.
pending={g15}
- g13 is 1 by naked-single.
pending={g13}
- k3 is 16 by naked-single.
pending={k3}
- j1 is 4 by naked-single.
pending={j1}
- m3 is 14 by naked-single.
pending={m3}
- d3 is 7 by naked-single.
pending={d3}
- d4 is 14 by naked-single.
pending={d4}
- o1 is 8 by naked-single.
pending={o1}
- p3 is 11 by naked-single.
pending={p3}
deduce.grid20: hidden-singles
deduce.grid20.rowe. e6 is 1 by hidden-single.
deduce.grid20.rowe. e16 is 16 by hidden-single.
pending={e6, e16}
deduce.grid20: naked-singles
- o6 is 15 by naked-single.
pending={o6}
deduce.grid20: hidden-singles
deduce.grid20.rowj. j13 is 8 by hidden-single.
pending={j13}
deduce.grid20: naked-singles
deduce.grid20: hidden-singles
deduce.grid20.rowj. j6 is 7 by hidden-single.
pending={j6}
deduce.grid20: naked-singles
deduce.grid20: hidden-singles
deduce.grid20.rowk. k11 is 8 by hidden-single.
deduce.grid20.rowk. k12 is 1 by hidden-single.
deduce.grid20.rowk. k15 is 13 by hidden-single.
pending={k11, k12, k15}
deduce.grid20: naked-singles
- i12 is 6 by naked-single.
pending={i12}
- i6 is 16 by naked-single.
pending={i6}
- j14 is 6 by naked-single.
pending={j14}
- e14 is 4 by naked-single.
pending={e14}
- d14 is 2 by naked-single.
pending={d14}
- e7 is 6 by naked-single.
pending={e7}
- d7 is 3 by naked-single.
pending={d7}
- d5 is 16 by naked-single.
pending={d5}
- d8 is 6 by naked-single.
pending={d8}
- f7 is 4 by naked-single.
pending={f7}
- f5 is 3 by naked-single.
pending={f5}
grid20 didn't work: naked-singles ran out of candidates.
…backtrack.grid19 again
backtrack.grid19 → grid21: c3 guess 11 ∈ {1|11}
pending={c3}
deduce.grid21: naked-singles
- c15 is 8 by naked-single.
pending={c15}
- c14 is 2 by naked-single.
pending={c14}
- c12 is 1 by naked-single.
pending={c12}
- d1 is 1 by naked-single.
pending={d1}
- d11 is 2 by naked-single.
pending={d11}
- d14 is 4 by naked-single.
pending={d14}
- d13 is 9 by naked-single.
pending={d13}
- d15 is 11 by naked-single.
pending={d15}
- f1 is 4 by naked-single.
pending={f1}
- g3 is 1 by naked-single.
pending={g3}
- g11 is 8 by naked-single.
pending={g11}
- e12 is 2 by naked-single.
pending={e12}
- e2 is 16 by naked-single.
pending={e2}
- g2 is 2 by naked-single.
pending={g2}
- g7 is 4 by naked-single.
pending={g7}
- i12 is 6 by naked-single.
pending={i12}
- j1 is 16 by naked-single.
pending={j1}
- k3 is 4 by naked-single.
pending={k3}
- k12 is 8 by naked-single.
pending={k12}
- k15 is 13 by naked-single.
pending={k15}
- g15 is 12 by naked-single.
pending={g15}
- g13 is 16 by naked-single.
pending={g13}
- g16 is 13 by naked-single.
pending={g16}
- i14 is 14 by naked-single.
pending={i14}
- k13 is 7 by naked-single.
pending={k13}
- i13 is 2 by naked-single.
pending={i13}
- k11 is 1 by naked-single.
pending={k11}
- k16 is 16 by naked-single.
pending={k16}
- l13 is 4 by naked-single.
pending={l13}
- j13 is 8 by naked-single.
pending={j13}
- j14 is 6 by naked-single.
pending={j14}
- e14 is 1 by naked-single.
pending={e14}
- e6 is 6 by naked-single.
pending={e6}
- e7 is 8 by naked-single.
pending={e7}
- e16 is 4 by naked-single.
pending={e16}
- f7 is 3 by naked-single.
pending={f7}
- d7 is 6 by naked-single.
pending={d7}
- f5 is 1 by naked-single.
pending={f5}
grid21 didn't work: naked-singles ran out of candidates.
…backtrack.grid19 again
grid19 didn't work: exhaustive search revealed no solution.
…backtrack.grid15 again
grid15 didn't work: exhaustive search revealed no solution.
…backtrack.grid13 again
grid13 didn't work: exhaustive search revealed no solution.
…backtrack.grid12 again
backtrack.grid12 → grid22: a4 guess 15 ∈ {2|15}
pending={a4}
deduce.grid22: naked-singles
- a14 is 2 by naked-single.
pending={a14}
- b1 is 1 by naked-single.
pending={b1}
- c3 is 11 by naked-single.
pending={c3}
- d1 is 2 by naked-single.
pending={d1}
- d11 is 1 by naked-single.
pending={d11}
- c12 is 2 by naked-single.
pending={c12}
- e12 is 8 by naked-single.
pending={e12}
- g11 is 2 by naked-single.
pending={g11}
- g2 is 16 by naked-single.
pending={g2}
- e2 is 2 by naked-single.
pending={e2}
deduce.grid22: hidden-singles
deduce.grid22.rowd. d15 is 11 by hidden-single.
pending={d15}
deduce.grid22: naked-singles
deduce.grid22: hidden-singles
deduce.grid22.rowd. d13 is 9 by hidden-single.
pending={d13}
deduce.grid22: naked-singles
deduce.grid22: hidden-singles
deduce.grid22.rowd. d14 is 4 by hidden-single.
pending={d14}
deduce.grid22: naked-singles
deduce.grid22: hidden-singles
deduce.grid22.rowe. e16 is 16 by hidden-single.
pending={e16}
deduce.grid22: naked-singles
deduce.grid22: hidden-singles
deduce.grid22.rowe. e7 is 4 by hidden-single.
pending={e7}
deduce.grid22: naked-singles
deduce.grid22: hidden-singles
deduce.grid22.rowf. f1 is 15 by hidden-single.
pending={f1}
deduce.grid22: naked-singles
deduce.grid22: hidden-singles
deduce.grid22.rowf. f4 is 4 by hidden-single.
pending={f4}
deduce.grid22: naked-singles
- g3 is 1 by naked-single.
pending={g3}
- g4 is 3 by naked-single.
pending={g4}
- g10 is 6 by naked-single.
pending={g10}
- e10 is 3 by naked-single.
pending={e10}
- g7 is 8 by naked-single.
pending={g7}
deduce.grid22: hidden-singles
deduce.grid22.rowi. i13 is 2 by hidden-single.
pending={i13}
deduce.grid22: naked-singles
deduce.grid22: hidden-singles
deduce.grid22.rowk. k12 is 1 by hidden-single.
pending={k12}
deduce.grid22: naked-singles
- i12 is 6 by naked-single.
pending={i12}
- m12 is 4 by naked-single.
pending={m12}
- l12 is 5 by naked-single.
pending={l12}
- p12 is 3 by naked-single.
pending={p12}
deduce.grid22: hidden-singles
deduce.grid22.rowm. m16 is 2 by hidden-single.
pending={m16}
deduce.grid22: naked-singles
deduce.grid22: hidden-singles
deduce.grid22.rowm. m9 is 6 by hidden-single.
pending={m9}
deduce.grid22: naked-singles
deduce.grid22: hidden-singles
deduce.grid22.rowp. p1 is 11 by hidden-single.
pending={p1}
deduce.grid22: naked-singles
deduce.grid22: hidden-singles
deduce.grid22.box11. k11 is 8 by hidden-single.
pending={k11}
deduce.grid22: naked-singles
deduce.grid22: hidden-singles
deduce.grid22.col11. l11 is 4 by hidden-single.
pending={l11}
deduce.grid22: naked-singles
deduce.grid22: hidden-singles
deduce.grid22.rowl. l4 is 10 by hidden-single.
pending={l4}
deduce.grid22: naked-singles
deduce.grid22: hidden-singles
deduce.grid22.col11. i11 is 10 by hidden-single.
pending={i11}
deduce.grid22: naked-singles
deduce.grid22: hidden-singles
deduce.grid22.box11. i10 is 7 by hidden-single.
pending={i10}
deduce.grid22: naked-singles
deduce.grid22: hidden-singles
deduce.grid22.col6. j6 is 7 by hidden-single.
pending={j6}
deduce.grid22: naked-singles
deduce.grid22: hidden-singles
deduce.grid22: naked-pairs
two's heap=f5 {1|3}, d7 {3|6}, e6 {1|6}, g13 {4|12}, b16 {3|7}, e14 {1|6}, f14 {1|6}, g16 {4|13}, i4 {1|13}, c15 {8|10}, c14 {1|8}, n11 {7|14}, o1 {4|8}, d3 {7|14}, f7 {3|6}, b15 {15|16}, d4 {7|14}, d5 {3|16}, j1 {4|16}, j4 {1|13}, k3 {4|16}, l10 {13|16}, m1 {8|16}, m3 {14|16}, b14 {7|15}, c16 {1|10}, o6 {1|15}, p10 {13|16}.
Naked-pair {1|6} in cells {e6, e14, f14} contained within {rowe, col14, box8}, updating cells {b14, c14, g13, g15, g16, i14, j14, p14}:
- c14: {1|8} → {8}. Solved.
- j14: {6|8|13} → {8|13}.
Naked-pair {3|6} in cells {d7, f7} contained within {col7}, updating cells {l7, n7, p7}:
- l7: {3|6|13} → {13}. Solved.
- n7: {2|3|13|14} → {2|13|14}.
Naked-pair {1|13} in cells {i4, j4} contained within {col4, box9}, updating cells {d4, j1, k3, n4, o4, p4}:
Naked-pair {7|14} in cells {d3, d4, n11} contained within {rowd, box1}, updating cells {d5, d7, d8}:
Naked-pair {4|16} in cells {j1, k3} contained within {box9}, updating cells {i4, j4}:
pending={c14, l7}
deduce.grid22: naked-singles
- c15 is 10 by naked-single.
pending={c15}
- c16 is 1 by naked-single.
pending={c16}
- j14 is 13 by naked-single.
pending={j14}
- j4 is 1 by naked-single.
pending={j4}
- i4 is 13 by naked-single.
pending={i4}
- l10 is 16 by naked-single.
pending={l10}
- i9 is 14 by naked-single.
pending={i9}
- i14 is 15 by naked-single.
pending={i14}
- b14 is 7 by naked-single.
pending={b14}
- b16 is 3 by naked-single.
pending={b16}
- b13 is 16 by naked-single.
pending={b13}
- b15 is 15 by naked-single.
pending={b15}
- i15 is 16 by naked-single.
pending={i15}
- i6 is 1 by naked-single.
pending={i6}
- e6 is 6 by naked-single.
pending={e6}
- e14 is 1 by naked-single.
pending={e14}
- f7 is 3 by naked-single.
pending={f7}
- d7 is 6 by naked-single.
pending={d7}
- f5 is 1 by naked-single.
pending={f5}
- f14 is 6 by naked-single.
pending={f14}
- k15 is 4 by naked-single.
pending={k15}
- k3 is 16 by naked-single.
pending={k3}
- j1 is 4 by naked-single.
pending={j1}
- k13 is 7 by naked-single.
pending={k13}
grid22 didn't work: naked-singles ran out of candidates.
…backtrack.grid12 again
grid12 didn't work: exhaustive search revealed no solution.
…backtrack.grid11 again
backtrack.grid11 → grid23: a9 guess 9 ∈ {7|9}
pending={a9}
deduce.grid23: naked-singles
deduce.grid23: hidden-singles
deduce.grid23.rowf. f11 is 9 by hidden-single.
pending={f11}
deduce.grid23: naked-singles
deduce.grid23: hidden-singles
deduce.grid23.rowf. f9 is 16 by hidden-single.
pending={f9}
deduce.grid23: naked-singles
deduce.grid23: hidden-singles
deduce.grid23.rowf. f12 is 7 by hidden-single.
pending={f12}
deduce.grid23: naked-singles
deduce.grid23: hidden-singles
deduce.grid23: naked-pairs
two's heap=c12 {1|2}, g3 {1|4}, i12 {1|6}, a11 {2|7}, e10 {3|6}, g10 {3|6}, d7 {3|6}, o6 {1|15}, b1 {1|15}, g2 {2|16}, c3 {1|11}, b15 {15|16}, g11 {2|8}, d5 {3|16}, o1 {4|8}, e2 {2|16}.
Naked-pair {3|6} in cells {d7, e10, g10} contained within {col10, box7}, updating cells {e12, g11, i10, l10, p10}:
- e12: {2|3|6|8} → {2|8}.
- i10: {6|7|13|16} → {7|13|16}.
- l10: {6|13|16} → {13|16}.
- p10: {3|7|13|16} → {7|13|16}.
Naked-pair {2|16} in cells {e2, g2} contained within {col2, box5}, updating cells {f1, f4, g3, g4}:
grid23
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
| 10
| 11
| 12
| 13
| 14
| 15
| 16
|
| a
| 3
| 4
| 6
|
| 10
| 12
| 1
| 11
| 9
| 8
|
| 16
| 13
|
| 5
| 14
|
| b
|
| 12
| 8
| 5
| 2
| 13
| 9
| 14
| 11
| 4
| 6
| 10
|
|
|
|
|
| c
| 13
| 9
|
| 16
| 5
| 4
| 15
| 7
| 12
| 14
| 3
|
| 6
|
|
|
|
| d
|
| 10
|
|
|
| 8
|
|
| 15
| 5
|
| 13
|
|
|
| 12
|
| e
| 14
|
| 13
| 11
| 9
|
|
| 5
| 10
|
| 12
|
| 15
|
| 7
|
|
| f
|
| 5
| 12
|
|
| 14
|
| 13
| 16
| 11
| 9
| 7
| 10
|
| 2
| 8
|
| g
| 7
|
|
|
| 15
| 11
|
| 10
| 5
|
|
| 14
|
| 9
|
|
|
| h
| 10
| 6
| 9
| 8
| 7
| 2
| 16
| 12
| 4
| 1
| 13
| 15
| 11
| 3
| 14
| 5
|
| i
| 5
| 8
| 3
|
| 11
|
| 12
| 4
|
|
|
|
|
|
|
| 9
|
| j
|
| 14
| 15
|
|
|
| 5
|
| 2
| 12
| 11
| 9
|
|
|
|
|
| k
| 6
| 11
|
| 12
| 14
| 9
| 10
| 2
| 3
| 15
|
|
|
| 5
|
|
|
| l
| 9
| 7
| 2
|
| 8
|
|
|
|
|
|
|
|
| 12
| 1
| 11
|
| m
|
| 13
|
| 9
| 12
| 5
| 7
|
|
| 10
| 15
|
|
| 11
| 3
|
|
| n
| 12
| 15
| 5
|
|
|
|
|
|
| 9
|
| 11
|
| 10
|
|
|
| o
|
| 3
| 10
|
|
|
| 11
|
|
| 2
|
| 12
|
| 16
|
|
|
| p
|
| 1
|
|
| 6
| 10
|
|
|
|
|
|
|
|
|
| 15
|
backtrack.grid23 → grid24: a11 guess 2 ∈ {2|7}
pending={a11}
deduce.grid24: naked-singles
- c12 is 1 by naked-single.
pending={c12}
- c3 is 11 by naked-single.
pending={c3}
- d11 is 7 by naked-single.
pending={d11}
- g11 is 8 by naked-single.
pending={g11}
- e12 is 2 by naked-single.
pending={e12}
- e2 is 16 by naked-single.
pending={e2}
- g2 is 2 by naked-single.
pending={g2}
- i12 is 6 by naked-single.
pending={i12}
deduce.grid24: hidden-singles
deduce.grid24.rowd. d15 is 11 by hidden-single.
pending={d15}
deduce.grid24: naked-singles
deduce.grid24: hidden-singles
deduce.grid24.rowd. d13 is 9 by hidden-single.
pending={d13}
deduce.grid24: naked-singles
deduce.grid24: hidden-singles
deduce.grid24.rowd. d14 is 4 by hidden-single.
pending={d14}
deduce.grid24: naked-singles
deduce.grid24: hidden-singles
deduce.grid24.rowe. e7 is 8 by hidden-single.
pending={e7}
deduce.grid24: naked-singles
deduce.grid24: hidden-singles
deduce.grid24.rowe. e16 is 4 by hidden-single.
pending={e16}
deduce.grid24: naked-singles
deduce.grid24: hidden-singles
deduce.grid24.rowp. p1 is 11 by hidden-single.
pending={p1}
deduce.grid24: naked-singles
deduce.grid24: hidden-singles
deduce.grid24.col3. p3 is 7 by hidden-single.
pending={p3}
deduce.grid24: naked-singles
deduce.grid24: hidden-singles
deduce.grid24.col4. a4 is 7 by hidden-single.
pending={a4}
deduce.grid24: naked-singles
- a14 is 15 by naked-single.
pending={a14}
- b15 is 16 by naked-single.
pending={b15}
deduce.grid24: hidden-singles
deduce.grid24.rowb. b1 is 15 by hidden-single.
pending={b1}
deduce.grid24: naked-singles
deduce.grid24: hidden-singles
deduce.grid24.rowf. f4 is 15 by hidden-single.
pending={f4}
deduce.grid24: naked-singles
deduce.grid24: hidden-singles
deduce.grid24.col4. g4 is 3 by hidden-single.
pending={g4}
deduce.grid24: naked-singles
- g10 is 6 by naked-single.
pending={g10}
- e10 is 3 by naked-single.
pending={e10}
- g7 is 4 by naked-single.
pending={g7}
- g3 is 1 by naked-single.
pending={g3}
- d3 is 14 by naked-single.
pending={d3}
- f1 is 4 by naked-single.
pending={f1}
- o1 is 8 by naked-single.
pending={o1}
deduce.grid24: hidden-singles
deduce.grid24.rowk. k11 is 1 by hidden-single.
pending={k11}
deduce.grid24: naked-singles
deduce.grid24: hidden-singles
deduce.grid24.col10. i10 is 7 by hidden-single.
pending={i10}
deduce.grid24: naked-singles
deduce.grid24: hidden-singles
deduce.grid24.col6. j6 is 7 by hidden-single.
pending={j6}
deduce.grid24: naked-singles
deduce.grid24: hidden-singles
deduce.grid24.col12. p12 is 3 by hidden-single.
pending={p12}
deduce.grid24: naked-singles
deduce.grid24: hidden-singles
deduce.grid24.col12. l12 is 5 by hidden-single.
pending={l12}
deduce.grid24: naked-singles
deduce.grid24: hidden-singles
deduce.grid24.col14. b14 is 7 by hidden-single.
pending={b14}
deduce.grid24: naked-singles
deduce.grid24: hidden-singles
deduce.grid24.col15. i15 is 15 by hidden-single.
pending={i15}
deduce.grid24: naked-singles
deduce.grid24: hidden-singles
deduce.grid24.box11. k12 is 8 by hidden-single.
pending={k12}
deduce.grid24: naked-singles
- m12 is 4 by naked-single.
pending={m12}
- m3 is 16 by naked-single.
pending={m3}
- k3 is 4 by naked-single.
pending={k3}
- k15 is 13 by naked-single.
pending={k15}
- g15 is 12 by naked-single.
pending={g15}
- g13 is 16 by naked-single.
pending={g13}
- g16 is 13 by naked-single.
pending={g16}
- k13 is 7 by naked-single.
pending={k13}
- k16 is 16 by naked-single.
pending={k16}
- m1 is 2 by naked-single.
pending={m1}
- d1 is 1 by naked-single.
pending={d1}
- d4 is 2 by naked-single.
pending={d4}
- j1 is 16 by naked-single.
pending={j1}
deduce.grid24: hidden-singles
deduce.grid24.rowp. p13 is 12 by hidden-single.
pending={p13}
deduce.grid24: naked-singles
deduce.grid24: hidden-singles
deduce.grid24.rowp. p11 is 5 by hidden-single.
pending={p11}
deduce.grid24: naked-singles
- o11 is 14 by naked-single.
pending={o11}
- n11 is 16 by naked-single.
pending={n11}
- i11 is 10 by naked-single.
pending={i11}
- l11 is 4 by naked-single.
pending={l11}
- p10 is 13 by naked-single.
pending={p10}
- l10 is 16 by naked-single.
pending={l10}
- p9 is 8 by naked-single.
pending={p9}
deduce.grid24: hidden-singles
deduce.grid24.rowi. i6 is 16 by hidden-single.
pending={i6}
deduce.grid24: naked-singles
deduce.grid24: hidden-singles
deduce.grid24.rowi. i4 is 1 by hidden-single.
pending={i4}
deduce.grid24: naked-singles
deduce.grid24: hidden-singles
deduce.grid24.rowi. i9 is 13 by hidden-single.
pending={i9}
deduce.grid24: naked-singles
- l9 is 14 by naked-single.
pending={l9}
- l13 is 3 by naked-single.
pending={l13}
- b13 is 1 by naked-single.
pending={b13}
- b16 is 3 by naked-single.
pending={b16}
deduce.grid24: hidden-singles
deduce.grid24.rowl. l4 is 10 by hidden-single.
pending={l4}
deduce.grid24: naked-singles
- j4 is 13 by naked-single.
pending={j4}
deduce.grid24: hidden-singles
deduce.grid24.rowl. l7 is 13 by hidden-single.
pending={l7}
deduce.grid24: naked-singles
deduce.grid24: hidden-singles
deduce.grid24.rowm. m13 is 14 by hidden-single.
pending={m13}
deduce.grid24: naked-singles
- i13 is 2 by naked-single.
pending={i13}
- i14 is 14 by naked-single.
pending={i14}
- p14 is 2 by naked-single.
pending={p14}
- c14 is 8 by naked-single.
pending={c14}
- c15 is 10 by naked-single.
pending={c15}
- c16 is 2 by naked-single.
pending={c16}
- j14 is 6 by naked-single.
pending={j14}
- e14 is 1 by naked-single.
pending={e14}
- e6 is 6 by naked-single.
pending={e6}
- f7 is 3 by naked-single.
pending={f7}
- d7 is 6 by naked-single.
pending={d7}
- f5 is 1 by naked-single.
pending={f5}
grid24 didn't work: naked-singles ran out of candidates.
…backtrack.grid23 again
backtrack.grid23 → grid25: a11 guess 7 ∈ {2|7}
pending={a11}
deduce.grid25: naked-singles
deduce.grid25: hidden-singles
deduce.grid25.col12. p12 is 3 by hidden-single.
pending={p12}
deduce.grid25: naked-singles
deduce.grid25: hidden-singles
deduce.grid25.col12. l12 is 5 by hidden-single.
pending={l12}
deduce.grid25: naked-singles
deduce.grid25: hidden-singles
deduce.grid25: naked-pairs
two's heap=c12 {1|2}, d11 {1|2}, g3 {1|4}, i12 {1|6}, e10 {3|6}, c3 {1|11}, g10 {3|6}, d7 {3|6}, o1 {4|8}, o6 {1|15}, a14 {2|15}, a4 {2|15}, g2 {2|16}, d5 {3|16}, e12 {2|8}, b15 {15|16}, g11 {2|8}, l10 {13|16}, b1 {1|15}, e2 {2|16}.
Naked-pair {3|6} in cells {d7, e10, g10} contained within {col10, box7}, updating cells {e12, g11, i10, l10, p10}:
Naked-pair {2|8} in cells {e12, g11} contained within {box7}, updating cells {e10, g10}:
Naked-pair {2|16} in cells {e2, g2} contained within {col2, box5}, updating cells {f1, f4, g3, g4}:
grid25
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
| 10
| 11
| 12
| 13
| 14
| 15
| 16
|
| a
| 3
| 4
| 6
|
| 10
| 12
| 1
| 11
| 9
| 8
| 7
| 16
| 13
|
| 5
| 14
|
| b
|
| 12
| 8
| 5
| 2
| 13
| 9
| 14
| 11
| 4
| 6
| 10
|
|
|
|
|
| c
| 13
| 9
|
| 16
| 5
| 4
| 15
| 7
| 12
| 14
| 3
|
| 6
|
|
|
|
| d
|
| 10
|
|
|
| 8
|
|
| 15
| 5
|
| 13
|
|
|
| 12
|
| e
| 14
|
| 13
| 11
| 9
|
|
| 5
| 10
|
| 12
|
| 15
|
| 7
|
|
| f
|
| 5
| 12
|
|
| 14
|
| 13
| 16
| 11
| 9
| 7
| 10
|
| 2
| 8
|
| g
| 7
|
|
|
| 15
| 11
|
| 10
| 5
|
|
| 14
|
| 9
|
|
|
| h
| 10
| 6
| 9
| 8
| 7
| 2
| 16
| 12
| 4
| 1
| 13
| 15
| 11
| 3
| 14
| 5
|
| i
| 5
| 8
| 3
|
| 11
|
| 12
| 4
|
|
|
|
|
|
|
| 9
|
| j
|
| 14
| 15
|
|
|
| 5
|
| 2
| 12
| 11
| 9
|
|
|
|
|
| k
| 6
| 11
|
| 12
| 14
| 9
| 10
| 2
| 3
| 15
|
|
|
| 5
|
|
|
| l
| 9
| 7
| 2
|
| 8
|
|
|
|
|
|
| 5
|
| 12
| 1
| 11
|
| m
|
| 13
|
| 9
| 12
| 5
| 7
|
|
| 10
| 15
|
|
| 11
| 3
|
|
| n
| 12
| 15
| 5
|
|
|
|
|
|
| 9
|
| 11
|
| 10
|
|
|
| o
|
| 3
| 10
|
|
|
| 11
|
|
| 2
|
| 12
|
| 16
|
|
|
| p
|
| 1
|
|
| 6
| 10
|
|
|
|
|
| 3
|
|
|
| 15
|
backtrack.grid25 → grid26: a4 guess 2 ∈ {2|15}
pending={a4}
deduce.grid26: naked-singles
- a14 is 15 by naked-single.
pending={a14}
- b15 is 16 by naked-single.
pending={b15}
deduce.grid26: hidden-singles
deduce.grid26.rowb. b1 is 15 by hidden-single.
pending={b1}
deduce.grid26: naked-singles
deduce.grid26: hidden-singles
deduce.grid26.rowf. f4 is 15 by hidden-single.
pending={f4}
deduce.grid26: naked-singles
deduce.grid26: hidden-singles
deduce.grid26.col4. g4 is 3 by hidden-single.
pending={g4}
deduce.grid26: naked-singles
- g10 is 6 by naked-single.
pending={g10}
- e10 is 3 by naked-single.
pending={e10}
deduce.grid26: hidden-singles
deduce.grid26.col15. i15 is 15 by hidden-single.
pending={i15}
deduce.grid26: naked-singles
deduce.grid26: hidden-singles
deduce.grid26: naked-pairs
two's heap=c12 {1|2}, f1 {1|4}, d11 {1|2}, i12 {1|6}, e6 {1|6}, g3 {1|4}, d7 {3|6}, c3 {1|11}, o1 {4|8}, d5 {3|16}, e12 {2|8}, g2 {2|16}, b14 {1|7}, g7 {4|8}, g11 {2|8}, e2 {2|16}, l10 {13|16}, d1 {1|11}, o6 {1|15}.
Naked-pair {1|4} in cells {f1, g3} contained within {box5}, updating cells {e2, g2}:
Naked-pair {1|11} in cells {c3, d1} contained within {box1}, updating cells {d3, d4}:
- d3: {1|7|11|14} → {7|14}.
- d4: {1|7|14} → {7|14}.
Naked-pair {2|16} in cells {e2, g2} contained within {col2, box5}, updating cells {f1, g3}:
grid26
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
| 10
| 11
| 12
| 13
| 14
| 15
| 16
|
| a
| 3
| 4
| 6
| 2
| 10
| 12
| 1
| 11
| 9
| 8
| 7
| 16
| 13
| 15
| 5
| 14
|
| b
| 15
| 12
| 8
| 5
| 2
| 13
| 9
| 14
| 11
| 4
| 6
| 10
|
|
| 16
|
|
| c
| 13
| 9
|
| 16
| 5
| 4
| 15
| 7
| 12
| 14
| 3
|
| 6
|
|
|
|
| d
|
| 10
|
|
|
| 8
|
|
| 15
| 5
|
| 13
|
|
|
| 12
|
| e
| 14
|
| 13
| 11
| 9
|
|
| 5
| 10
| 3
| 12
|
| 15
|
| 7
|
|
| f
|
| 5
| 12
| 15
|
| 14
|
| 13
| 16
| 11
| 9
| 7
| 10
|
| 2
| 8
|
| g
| 7
|
|
| 3
| 15
| 11
|
| 10
| 5
| 6
|
| 14
|
| 9
|
|
|
| h
| 10
| 6
| 9
| 8
| 7
| 2
| 16
| 12
| 4
| 1
| 13
| 15
| 11
| 3
| 14
| 5
|
| i
| 5
| 8
| 3
|
| 11
|
| 12
| 4
|
|
|
|
|
|
| 15
| 9
|
| j
|
| 14
| 15
|
|
|
| 5
|
| 2
| 12
| 11
| 9
|
|
|
|
|
| k
| 6
| 11
|
| 12
| 14
| 9
| 10
| 2
| 3
| 15
|
|
|
| 5
|
|
|
| l
| 9
| 7
| 2
|
| 8
|
|
|
|
|
|
| 5
|
| 12
| 1
| 11
|
| m
|
| 13
|
| 9
| 12
| 5
| 7
|
|
| 10
| 15
|
|
| 11
| 3
|
|
| n
| 12
| 15
| 5
|
|
|
|
|
|
| 9
|
| 11
|
| 10
|
|
|
| o
|
| 3
| 10
|
|
|
| 11
|
|
| 2
|
| 12
|
| 16
|
|
|
| p
|
| 1
|
|
| 6
| 10
|
|
|
|
|
| 3
|
|
|
| 15
|
backtrack.grid26 → grid27: b14 guess 1 ∈ {1|7}
pending={b14}
deduce.grid27: naked-singles
deduce.grid27: hidden-singles
deduce.grid27: naked-pairs
two's heap=c12 {1|2}, f1 {1|4}, d11 {1|2}, d7 {3|6}, g3 {1|4}, o1 {4|8}, e6 {1|6}, e14 {4|6}, f14 {4|6}, b13 {3|7}, i12 {1|6}, c16 {2|10}, o6 {1|15}, d1 {1|11}, e12 {2|8}, d3 {7|14}, b16 {3|7}, d4 {7|14}, g2 {2|16}, d5 {3|16}, g7 {4|8}, g11 {2|8}, c14 {2|8}, l10 {13|16}, c3 {1|11}, e2 {2|16}.
Naked-pair {1|4} in cells {f1, g3} contained within {box5}, updating cells {e2, g2}:
Naked-pair {4|6} in cells {e14, f14} contained within {col14, box8}, updating cells {c14, d14, e16, g13, g15, g16, i14, j14, p14}:
- d14: {2|4|7} → {2|7}.
- e16: {1|4|6|16} → {1|16}.
- g13: {1|4|12|16} → {1|12|16}.
- g15: {4|12|13} → {12|13}.
- g16: {1|4|13|16} → {1|13|16}.
- i14: {2|6|7|13|14} → {2|7|13|14}.
- j14: {4|6|7|8|13} → {7|8|13}.
- p14: {2|4|7|8|13|14} → {2|7|8|13|14}.
Naked-pair {3|7} in cells {b13, b16} contained within {rowb, box4}, updating cells {c14, c15, c16, d13, d14, d15}:
- d13: {2|3|4|7|9} → {2|4|9}.
- d14: {2|7} → {2}. Solved.
Naked-pair {1|11} in cells {c3, d1} contained within {box1}, updating cells {d3, d4}:
Naked-pair {7|14} in cells {d3, d4} contained within {rowd, box1}, updating cells {c3, d1, d5, d7, d8, d11, d13, d14, d15}:
Naked-pair {2|16} in cells {e2, g2} contained within {col2, box5}, updating cells {f1, g3}:
pending={d14}
deduce.grid27: naked-singles
- c14 is 8 by naked-single.
pending={c14}
- c16 is 10 by naked-single.
pending={c16}
- c15 is 11 by naked-single.
pending={c15}
- c3 is 1 by naked-single.
pending={c3}
- c12 is 2 by naked-single.
pending={c12}
- d1 is 11 by naked-single.
pending={d1}
- d11 is 1 by naked-single.
pending={d11}
- e12 is 8 by naked-single.
pending={e12}
- g3 is 4 by naked-single.
pending={g3}
- f1 is 1 by naked-single.
pending={f1}
- g7 is 8 by naked-single.
pending={g7}
- g11 is 2 by naked-single.
pending={g11}
- g2 is 16 by naked-single.
pending={g2}
- e2 is 2 by naked-single.
pending={e2}
- k3 is 16 by naked-single.
pending={k3}
- j1 is 4 by naked-single.
pending={j1}
- m3 is 14 by naked-single.
pending={m3}
- d3 is 7 by naked-single.
pending={d3}
- d4 is 14 by naked-single.
pending={d4}
- o1 is 8 by naked-single.
pending={o1}
- p3 is 11 by naked-single.
pending={p3}
deduce.grid27: hidden-singles
deduce.grid27.rowe. e16 is 16 by hidden-single.
pending={e16}
deduce.grid27: naked-singles
deduce.grid27: hidden-singles
deduce.grid27.rowe. e6 is 1 by hidden-single.
pending={e6}
deduce.grid27: naked-singles
- o6 is 15 by naked-single.
pending={o6}
deduce.grid27: hidden-singles
deduce.grid27.rowi. i13 is 2 by hidden-single.
pending={i13}
deduce.grid27: naked-singles
deduce.grid27: hidden-singles
deduce.grid27.rowk. k12 is 1 by hidden-single.
pending={k12}
deduce.grid27: naked-singles
- i12 is 6 by naked-single.
pending={i12}
- m12 is 4 by naked-single.
pending={m12}
deduce.grid27: hidden-singles
deduce.grid27.rowi. i4 is 1 by hidden-single.
pending={i4}
deduce.grid27: naked-singles
deduce.grid27: hidden-singles
deduce.grid27.rowi. i11 is 10 by hidden-single.
pending={i11}
deduce.grid27: naked-singles
deduce.grid27: hidden-singles
deduce.grid27.rowl. l4 is 10 by hidden-single.
deduce.grid27.rowl. l8 is 15 by hidden-single.
pending={l4, l8}
deduce.grid27: naked-singles
- j4 is 13 by naked-single.
pending={j4}
- j14 is 7 by naked-single.
pending={j14}
deduce.grid27: hidden-singles
deduce.grid27.rowj. j15 is 10 by hidden-single.
pending={j15}
deduce.grid27: naked-singles
deduce.grid27: hidden-singles
deduce.grid27.rowj. j13 is 8 by hidden-single.
pending={j13}
deduce.grid27: naked-singles
- k13 is 4 by naked-single.
pending={k13}
- d13 is 9 by naked-single.
pending={d13}
- d15 is 4 by naked-single.
pending={d15}
- k11 is 8 by naked-single.
pending={k11}
- k15 is 13 by naked-single.
pending={k15}
- g15 is 12 by naked-single.
pending={g15}
- g13 is 1 by naked-single.
pending={g13}
- g16 is 13 by naked-single.
pending={g16}
- i14 is 14 by naked-single.
pending={i14}
grid27 didn't work: naked-singles ran out of candidates.
…backtrack.grid26 again
backtrack.grid26 → grid28: b14 guess 7 ∈ {1|7}
pending={b14}
deduce.grid28: naked-singles
deduce.grid28: hidden-singles
deduce.grid28: naked-pairs
two's heap=c12 {1|2}, d11 {1|2}, f1 {1|4}, b16 {1|3}, b13 {1|3}, e12 {2|8}, e6 {1|6}, g3 {1|4}, i12 {1|6}, o1 {4|8}, o6 {1|15}, d3 {7|14}, c3 {1|11}, d4 {7|14}, g2 {2|16}, d5 {3|16}, g7 {4|8}, g11 {2|8}, d7 {3|6}, l10 {13|16}, d1 {1|11}, e2 {2|16}.
Naked-pair {1|3} in cells {b13, b16} contained within {rowb, box4}, updating cells {c14, c15, c16, d13, d14, d15}:
- c14: {1|2|8} → {2|8}.
- c16: {1|2|10} → {2|10}.
- d13: {1|2|3|4|9} → {2|4|9}.
- d14: {1|2|4} → {2|4}.
Naked-pair {1|4} in cells {f1, g3} contained within {box5}, updating cells {e2, g2}:
Naked-pair {1|11} in cells {c3, d1} contained within {box1}, updating cells {d3, d4}:
Naked-pair {7|14} in cells {d3, d4} contained within {rowd, box1}, updating cells {c3, d1, d5, d7, d8, d11, d13, d14, d15}:
Naked-pair {2|16} in cells {e2, g2} contained within {col2, box5}, updating cells {f1, g3}:
grid28
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
| 10
| 11
| 12
| 13
| 14
| 15
| 16
|
| a
| 3
| 4
| 6
| 2
| 10
| 12
| 1
| 11
| 9
| 8
| 7
| 16
| 13
| 15
| 5
| 14
|
| b
| 15
| 12
| 8
| 5
| 2
| 13
| 9
| 14
| 11
| 4
| 6
| 10
|
| 7
| 16
|
|
| c
| 13
| 9
|
| 16
| 5
| 4
| 15
| 7
| 12
| 14
| 3
|
| 6
|
|
|
|
| d
|
| 10
|
|
|
| 8
|
|
| 15
| 5
|
| 13
|
|
|
| 12
|
| e
| 14
|
| 13
| 11
| 9
|
|
| 5
| 10
| 3
| 12
|
| 15
|
| 7
|
|
| f
|
| 5
| 12
| 15
|
| 14
|
| 13
| 16
| 11
| 9
| 7
| 10
|
| 2
| 8
|
| g
| 7
|
|
| 3
| 15
| 11
|
| 10
| 5
| 6
|
| 14
|
| 9
|
|
|
| h
| 10
| 6
| 9
| 8
| 7
| 2
| 16
| 12
| 4
| 1
| 13
| 15
| 11
| 3
| 14
| 5
|
| i
| 5
| 8
| 3
|
| 11
|
| 12
| 4
|
|
|
|
|
|
| 15
| 9
|
| j
|
| 14
| 15
|
|
|
| 5
|
| 2
| 12
| 11
| 9
|
|
|
|
|
| k
| 6
| 11
|
| 12
| 14
| 9
| 10
| 2
| 3
| 15
|
|
|
| 5
|
|
|
| l
| 9
| 7
| 2
|
| 8
|
|
|
|
|
|
| 5
|
| 12
| 1
| 11
|
| m
|
| 13
|
| 9
| 12
| 5
| 7
|
|
| 10
| 15
|
|
| 11
| 3
|
|
| n
| 12
| 15
| 5
|
|
|
|
|
|
| 9
|
| 11
|
| 10
|
|
|
| o
|
| 3
| 10
|
|
|
| 11
|
|
| 2
|
| 12
|
| 16
|
|
|
| p
|
| 1
|
|
| 6
| 10
|
|
|
|
|
| 3
|
|
|
| 15
|
backtrack.grid28 → grid29: b13 guess 1 ∈ {1|3}
pending={b13}
deduce.grid29: naked-singles
- b16 is 3 by naked-single.
pending={b16}
deduce.grid29: hidden-singles
deduce.grid29: naked-pairs
two's heap=c12 {1|2}, d11 {1|2}, f1 {1|4}, g3 {1|4}, d14 {2|4}, c14 {2|8}, e6 {1|6}, c16 {2|10}, g11 {2|8}, i12 {1|6}, d7 {3|6}, e2 {2|16}, d3 {7|14}, d4 {7|14}, e12 {2|8}, d5 {3|16}, g2 {2|16}, c3 {1|11}, g7 {4|8}, d1 {1|11}, l10 {13|16}, o1 {4|8}, o6 {1|15}.
Naked-pair {1|4} in cells {f1, g3} contained within {box5}, updating cells {e2, g2}:
Naked-pair {1|11} in cells {c3, d1} contained within {box1}, updating cells {d3, d4}:
Naked-pair {7|14} in cells {d3, d4} contained within {rowd, box1}, updating cells {c3, d1, d5, d7, d8, d11, d13, d14, d15}:
Naked-pair {2|16} in cells {e2, g2} contained within {col2, box5}, updating cells {f1, g3}:
grid29
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
| 10
| 11
| 12
| 13
| 14
| 15
| 16
|
| a
| 3
| 4
| 6
| 2
| 10
| 12
| 1
| 11
| 9
| 8
| 7
| 16
| 13
| 15
| 5
| 14
|
| b
| 15
| 12
| 8
| 5
| 2
| 13
| 9
| 14
| 11
| 4
| 6
| 10
| 1
| 7
| 16
| 3
|
| c
| 13
| 9
|
| 16
| 5
| 4
| 15
| 7
| 12
| 14
| 3
|
| 6
|
|
|
|
| d
|
| 10
|
|
|
| 8
|
|
| 15
| 5
|
| 13
|
|
|
| 12
|
| e
| 14
|
| 13
| 11
| 9
|
|
| 5
| 10
| 3
| 12
|
| 15
|
| 7
|
|
| f
|
| 5
| 12
| 15
|
| 14
|
| 13
| 16
| 11
| 9
| 7
| 10
|
| 2
| 8
|
| g
| 7
|
|
| 3
| 15
| 11
|
| 10
| 5
| 6
|
| 14
|
| 9
|
|
|
| h
| 10
| 6
| 9
| 8
| 7
| 2
| 16
| 12
| 4
| 1
| 13
| 15
| 11
| 3
| 14
| 5
|
| i
| 5
| 8
| 3
|
| 11
|
| 12
| 4
|
|
|
|
|
|
| 15
| 9
|
| j
|
| 14
| 15
|
|
|
| 5
|
| 2
| 12
| 11
| 9
|
|
|
|
|
| k
| 6
| 11
|
| 12
| 14
| 9
| 10
| 2
| 3
| 15
|
|
|
| 5
|
|
|
| l
| 9
| 7
| 2
|
| 8
|
|
|
|
|
|
| 5
|
| 12
| 1
| 11
|
| m
|
| 13
|
| 9
| 12
| 5
| 7
|
|
| 10
| 15
|
|
| 11
| 3
|
|
| n
| 12
| 15
| 5
|
|
|
|
|
|
| 9
|
| 11
|
| 10
|
|
|
| o
|
| 3
| 10
|
|
|
| 11
|
|
| 2
|
| 12
|
| 16
|
|
|
| p
|
| 1
|
|
| 6
| 10
|
|
|
|
|
| 3
|
|
|
| 15
|
backtrack.grid29 → grid30: c3 guess 1 ∈ {1|11}
pending={c3}
deduce.grid30: naked-singles
- c12 is 2 by naked-single.
pending={c12}
- c14 is 8 by naked-single.
pending={c14}
- c16 is 10 by naked-single.
pending={c16}
- c15 is 11 by naked-single.
pending={c15}
- d1 is 11 by naked-single.
pending={d1}
- d11 is 1 by naked-single.
pending={d11}
- e12 is 8 by naked-single.
pending={e12}
- g3 is 4 by naked-single.
pending={g3}
- f1 is 1 by naked-single.
pending={f1}
- g7 is 8 by naked-single.
pending={g7}
- g11 is 2 by naked-single.
pending={g11}
- g2 is 16 by naked-single.
pending={g2}
- e2 is 2 by naked-single.
pending={e2}
- g13 is 12 by naked-single.
pending={g13}
- g15 is 13 by naked-single.
pending={g15}
- g16 is 1 by naked-single.
pending={g16}
- k3 is 16 by naked-single.
pending={k3}
- j1 is 4 by naked-single.
pending={j1}
- m3 is 14 by naked-single.
pending={m3}
- d3 is 7 by naked-single.
pending={d3}
- d4 is 14 by naked-single.
pending={d4}
- o1 is 8 by naked-single.
pending={o1}
- p3 is 11 by naked-single.
pending={p3}
deduce.grid30: hidden-singles
deduce.grid30.rowe. e6 is 1 by hidden-single.
deduce.grid30.rowe. e16 is 16 by hidden-single.
pending={e6, e16}
deduce.grid30: naked-singles
- o6 is 15 by naked-single.
pending={o6}
deduce.grid30: hidden-singles
deduce.grid30.rowk. k12 is 1 by hidden-single.
deduce.grid30.rowk. k16 is 13 by hidden-single.
pending={k12, k16}
deduce.grid30: naked-singles
- i12 is 6 by naked-single.
pending={i12}
- j14 is 6 by naked-single.
pending={j14}
- e14 is 4 by naked-single.
pending={e14}
- d14 is 2 by naked-single.
pending={d14}
- e7 is 6 by naked-single.
pending={e7}
- d7 is 3 by naked-single.
pending={d7}
- d5 is 16 by naked-single.
pending={d5}
- d8 is 6 by naked-single.
pending={d8}
- f7 is 4 by naked-single.
pending={f7}
- f5 is 3 by naked-single.
pending={f5}
grid30 didn't work: naked-singles ran out of candidates.
…backtrack.grid29 again
backtrack.grid29 → grid31: c3 guess 11 ∈ {1|11}
pending={c3}
deduce.grid31: naked-singles
- d1 is 1 by naked-single.
pending={d1}
- d11 is 2 by naked-single.
pending={d11}
- c12 is 1 by naked-single.
pending={c12}
- d14 is 4 by naked-single.
pending={d14}
- d13 is 9 by naked-single.
pending={d13}
- d15 is 11 by naked-single.
pending={d15}
- f1 is 4 by naked-single.
pending={f1}
- g3 is 1 by naked-single.
pending={g3}
- g11 is 8 by naked-single.
pending={g11}
- e12 is 2 by naked-single.
pending={e12}
- e2 is 16 by naked-single.
pending={e2}
- g2 is 2 by naked-single.
pending={g2}
- g7 is 4 by naked-single.
pending={g7}
- i12 is 6 by naked-single.
pending={i12}
- j1 is 16 by naked-single.
pending={j1}
- k3 is 4 by naked-single.
pending={k3}
- k12 is 8 by naked-single.
pending={k12}
- k15 is 13 by naked-single.
pending={k15}
- g15 is 12 by naked-single.
pending={g15}
- g13 is 16 by naked-single.
pending={g13}
- g16 is 13 by naked-single.
pending={g16}
- k13 is 7 by naked-single.
pending={k13}
- k16 is 16 by naked-single.
pending={k16}
- k11 is 1 by naked-single.
pending={k11}
- m12 is 4 by naked-single.
pending={m12}
- o1 is 8 by naked-single.
pending={o1}
- m1 is 2 by naked-single.
pending={m1}
- p1 is 11 by naked-single.
pending={p1}
deduce.grid31: hidden-singles
deduce.grid31.rowe. e7 is 8 by hidden-single.
deduce.grid31.rowe. e16 is 4 by hidden-single.
pending={e7, e16}
deduce.grid31: naked-singles
deduce.grid31: hidden-singles
deduce.grid31.rowj. j6 is 7 by hidden-single.
pending={j6}
deduce.grid31: naked-singles
deduce.grid31: hidden-singles
deduce.grid31.rowp. p13 is 12 by hidden-single.
pending={p13}
deduce.grid31: naked-singles
deduce.grid31: hidden-singles
deduce.grid31.rowp. p11 is 5 by hidden-single.
pending={p11}
deduce.grid31: naked-singles
- o11 is 14 by naked-single.
pending={o11}
- n11 is 16 by naked-single.
pending={n11}
- i11 is 10 by naked-single.
pending={i11}
- l11 is 4 by naked-single.
pending={l11}
deduce.grid31: hidden-singles
deduce.grid31.rowl. l4 is 10 by hidden-single.
pending={l4}
deduce.grid31: naked-singles
deduce.grid31: hidden-singles
deduce.grid31.rowo. o13 is 5 by hidden-single.
pending={o13}
deduce.grid31: naked-singles
deduce.grid31: hidden-singles
deduce.grid31.col5. d5 is 16 by hidden-single.
pending={d5}
deduce.grid31: naked-singles
deduce.grid31: hidden-singles
deduce.grid31.col14. p14 is 13 by hidden-single.
pending={p14}
deduce.grid31: naked-singles
- p10 is 7 by naked-single.
pending={p10}
- p9 is 8 by naked-single.
pending={p9}
deduce.grid31: hidden-singles
deduce.grid31.rowi. i9 is 7 by hidden-single.
pending={i9}
deduce.grid31: naked-singles
deduce.grid31: hidden-singles
deduce.grid31.rowp. p7 is 2 by hidden-single.
pending={p7}
deduce.grid31: naked-singles
deduce.grid31: hidden-singles
deduce.grid31.col3. d3 is 7 by hidden-single.
pending={d3}
deduce.grid31: naked-singles
- d4 is 14 by naked-single.
pending={d4}
- p4 is 4 by naked-single.
pending={p4}
- p15 is 9 by naked-single.
pending={p15}
- p8 is 16 by naked-single.
pending={p8}
- p3 is 14 by naked-single.
pending={p3}
- m3 is 16 by naked-single.
pending={m3}
deduce.grid31: hidden-singles
deduce.grid31.rowm. m13 is 14 by hidden-single.
pending={m13}
deduce.grid31: naked-singles
- i13 is 2 by naked-single.
pending={i13}
- i14 is 14 by naked-single.
pending={i14}
- l13 is 3 by naked-single.
pending={l13}
deduce.grid31: hidden-singles
deduce.grid31.rowl. l9 is 14 by hidden-single.
pending={l9}
deduce.grid31: naked-singles
deduce.grid31: hidden-singles
deduce.grid31.rowm. m8 is 8 by hidden-single.
pending={m8}
deduce.grid31: naked-singles
deduce.grid31: hidden-singles
deduce.grid31.rown. n7 is 14 by hidden-single.
deduce.grid31.rown. n16 is 2 by hidden-single.
pending={n7, n16}
deduce.grid31: naked-singles
- c16 is 10 by naked-single.
pending={c16}
- c15 is 8 by naked-single.
pending={c15}
- c14 is 2 by naked-single.
pending={c14}
- j16 is 6 by naked-single.
pending={j16}
- j14 is 8 by naked-single.
pending={j14}
- j13 is 4 by naked-single.
pending={j13}
- j15 is 10 by naked-single.
pending={j15}
- m16 is 1 by naked-single.
pending={m16}
- m9 is 6 by naked-single.
pending={m9}
- n13 is 8 by naked-single.
pending={n13}
- o16 is 7 by naked-single.
pending={o16}
- o4 is 6 by naked-single.
pending={o4}
- n4 is 7 by naked-single.
pending={n4}
- o15 is 4 by naked-single.
pending={o15}
- n15 is 6 by naked-single.
pending={n15}
deduce.grid31: hidden-singles
deduce.grid31.rown. n5 is 4 by hidden-single.
pending={n5}
deduce.grid31: naked-singles
deduce.grid31: hidden-singles
deduce.grid31.rown. n9 is 13 by hidden-single.
pending={n9}
deduce.grid31: naked-singles
- o9 is 1 by naked-single.
pending={o9}
- o5 is 13 by naked-single.
pending={o5}
- o6 is 15 by naked-single.
pending={o6}
- o8 is 9 by naked-single.
pending={o8}
deduce.grid31: hidden-singles
deduce.grid31.rowj. j4 is 13 by hidden-single.
pending={j4}
deduce.grid31: naked-singles
- i4 is 1 by naked-single.
pending={i4}
- i6 is 16 by naked-single.
pending={i6}
- i10 is 13 by naked-single.
pending={i10}
- l6 is 6 by naked-single.
pending={l6}
- e6 is 1 by naked-single.
pending={e6}
- e14 is 6 by naked-single.
pending={e14}
- f5 is 3 by naked-single.
pending={f5}
- f7 is 6 by naked-single.
pending={f7}
- d7 is 3 by naked-single.
pending={d7}
- d8 is 6 by naked-single.
pending={d8}
- f14 is 1 by naked-single.
pending={f14}
- j5 is 1 by naked-single.
pending={j5}
- j8 is 3 by naked-single.
pending={j8}
- l7 is 13 by naked-single.
pending={l7}
- l8 is 15 by naked-single.
pending={l8}
- l10 is 16 by naked-single.
pending={l10}
- n6 is 3 by naked-single.
pending={n6}
- n8 is 1 by naked-single.
pending={n8}
deduce.grid31. Solved.
grid31
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
| 10
| 11
| 12
| 13
| 14
| 15
| 16
|
| a
| 3
| 4
| 6
| 2
| 10
| 12
| 1
| 11
| 9
| 8
| 7
| 16
| 13
| 15
| 5
| 14
|
| b
| 15
| 12
| 8
| 5
| 2
| 13
| 9
| 14
| 11
| 4
| 6
| 10
| 1
| 7
| 16
| 3
|
| c
| 13
| 9
| 11
| 16
| 5
| 4
| 15
| 7
| 12
| 14
| 3
| 1
| 6
| 2
| 8
| 10
|
| d
| 1
| 10
| 7
| 14
| 16
| 8
| 3
| 6
| 15
| 5
| 2
| 13
| 9
| 4
| 11
| 12
|
| e
| 14
| 16
| 13
| 11
| 9
| 1
| 8
| 5
| 10
| 3
| 12
| 2
| 15
| 6
| 7
| 4
|
| f
| 4
| 5
| 12
| 15
| 3
| 14
| 6
| 13
| 16
| 11
| 9
| 7
| 10
| 1
| 2
| 8
|
| g
| 7
| 2
| 1
| 3
| 15
| 11
| 4
| 10
| 5
| 6
| 8
| 14
| 16
| 9
| 12
| 13
|
| h
| 10
| 6
| 9
| 8
| 7
| 2
| 16
| 12
| 4
| 1
| 13
| 15
| 11
| 3
| 14
| 5
|
| i
| 5
| 8
| 3
| 1
| 11
| 16
| 12
| 4
| 7
| 13
| 10
| 6
| 2
| 14
| 15
| 9
|
| j
| 16
| 14
| 15
| 13
| 1
| 7
| 5
| 3
| 2
| 12
| 11
| 9
| 4
| 8
| 10
| 6
|
| k
| 6
| 11
| 4
| 12
| 14
| 9
| 10
| 2
| 3
| 15
| 1
| 8
| 7
| 5
| 13
| 16
|
| l
| 9
| 7
| 2
| 10
| 8
| 6
| 13
| 15
| 14
| 16
| 4
| 5
| 3
| 12
| 1
| 11
|
| m
| 2
| 13
| 16
| 9
| 12
| 5
| 7
| 8
| 6
| 10
| 15
| 4
| 14
| 11
| 3
| 1
|
| n
| 12
| 15
| 5
| 7
| 4
| 3
| 14
| 1
| 13
| 9
| 16
| 11
| 8
| 10
| 6
| 2
|
| o
| 8
| 3
| 10
| 6
| 13
| 15
| 11
| 9
| 1
| 2
| 14
| 12
| 5
| 16
| 4
| 7
|
| p
| 11
| 1
| 14
| 4
| 6
| 10
| 2
| 16
| 8
| 7
| 5
| 3
| 12
| 13
| 9
| 15
|
grid31. Copying solution to raw grid.